• 排序


    /**
     * @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 ;
    }

     

  • 相关阅读:
    .net下将富文本编辑器文本原样读入word文档
    最大流算法完整代码
    如何用程序删除win 7下SYSTEM权限的目录
    01背包问题的动态规划算法
    使用gem安装jekyll错误记录
    dev机上数据库中批量生成table
    git pull错误记录及解决
    git clone操作到开发机的错误记录
    nginx错误记录
    链表链式结构的写法
  • 原文地址:https://www.cnblogs.com/archmage01/p/11688061.html
Copyright © 2020-2023  润新知