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