zoukankan      html  css  js  c++  java
  • 排序

    /**
     * @brief      插入排序类似于打扑克,取出未排序的一张牌插入到已排序的牌中
     *      取出的一张牌是在已排序好的牌中从后向前查找,直到查找到比当前牌小的那个位置,然后插入进去
     * 
     */
    
    /*-  直接插入排序  */
    vector<unsigned int>  Sort::insert_sort( vector<unsigned int> &test , unsigned int len )
    {
        unsigned int i = 0 , j = 0 ;
        for( i = 1 ; i< len ; i++ )
        {
            unsigned int temp = test[i] ; //待排序元素
            j = i ; //已经排序个数
            while(j>0 && temp < test[j-1]  )
            {
                test[j] = test[j-1] ;
                j = j -1 ;
            }
            test[j] =  temp ;
        }
        return  test ;
    }
    
    /**
     * @brief  冒泡排序  交换相邻数据 将最大值冒泡至最右边 
     */
    vector<unsigned int>  Sort::bubble_sort( vector<unsigned int> &test , unsigned int len )
    {
        unsigned int i = 0 , j = 0 ;
        for( i = 0 ; i< len -1 ; i++ )
        {
            for( j = 0 ; j< len-i-1 ; j++ )
            {
                if(test[j] > test[j+1])
                {
                    swap(test[j], test[j+1] );
                }
            }
        }
        return  test ;
    }
    
    /**
     * @brief  选择排序  每一轮选出记录最小的数据放最左边(未排序)
     */
    vector<unsigned int>  Sort::select_sort( vector<unsigned int> &test , unsigned int len )
    {
        unsigned int i = 0 , j = 0 ;
        for( i = 0 ; i< len -1 ; i++ )
        {
            unsigned int  min = i ;
            for( j = i ; j<  len  ; j++ )
            {
                if( test[min] >  test[j] )
                {
                   min =  j ;
                }
            }
            swap(test[i] , test[min]  ) ;
        }
        return  test ;
    }

     

  • 相关阅读:
    bat windows批处理 移动所有子目录文件
    Oracle常见的QA
    [转载]行动起来
    [转载]微笑
    Excel数据更新至Mysql数据库
    sql server QA
    关于SharpZipLib的压缩与解压问题
    整合Spring.net到asp.net网站开发中初探
    设计模式概要
    Oracle 常用语句档案(二)
  • 原文地址:https://www.cnblogs.com/archmage01/p/11688061.html
Copyright © 2011-2022 走看看