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 ;
    }

     

  • 相关阅读:
    vue路由
    vue-cli目录结构介绍
    andriodiphone视频禁止全屏播放
    JS判断Android、iOS或浏览器的多种方法(四种方法)
    vue中移动端自适应方案
    移动端视频不兼容
    vue之router-link
    移动端网页开发注意点
    AWS EC2服务器的HTTPS负载均衡器配置过程
    Kubernetes概念介绍和v1版本部署过程
  • 原文地址:https://www.cnblogs.com/archmage01/p/11688061.html
Copyright © 2011-2022 走看看