voidSelectSort(vector<int>&vec){int length = vec.size();if(length <2){return;}for(int i =0; i < length;++i){int min = vec[i];int index = i;for(int j = i +1; j < length;++j){if(vec[j]>= min){continue;}
min = vec[j];
index = j;}swap(vec[i], vec[index]);}}
2、堆排序
voidAdjustDown(vector<int>&vec,int k,int len){int cur = vec[k];for(int i =2*k+1; i <= len; i =2*i+1){if(i < len && vec[i]< vec[i+1]){++i;}if(cur >= vec[i]){break;}else{
vec[k]= vec[i];
k = i;}}
vec[k]= cur;}voidBuildMaxHeap(vector<int>&vec,int len){for(int i = len /2; i >-1;--i){AjustDown(vec, i, len);}}voidHeapSort(vector<int>&vec){int length = vec.size();if(length <2){return;}BuildMaxHeap(vec, length -1);for(int i = length-1; i >-1;--i){swap(vec[i], vec[0]);AdjustDown(vec,0, i -1);}}