# 基本思想
每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止。
排序实例
初始关键字 [49 38 65 97 76 13 27 49]
第一趟排序后 13 [38 65 97 76 49 27 49]
第二趟排序后 13 27 [65 97 76 49 38 49]
第三趟排序后 13 27 38 [97 76 49 65 49]
第四趟排序后 13 27 38 49 [76 97 65 49 ]
第五趟排序后 13 27 38 49 49 [97 65 76]
第六趟排序后 13 27 38 49 49 65 [97 76]
第七趟排序后 13 27 38 49 49 65 76 [97]
最后排序结果 13 27 38 49 49 65 76 97
# C++代码
1 # include<iostream> 2 # include<vector> 3 using namespace std; 4 5 int main() 6 { 7 vector<int > vec={49,38,65,97,76,13,27,49}; 8 9 for(int i=0;i<vec.size()-1;++i) 10 { 11 int min = i; 12 13 for(int j=i+1;j<vec.size();++j){ 14 if(vec[min]>vec[j]) 15 min = j; 16 } 17 18 if(min!=i){ 19 int temp = vec[i]; 20 vec[i]=vec[min]; 21 vec[min]=temp; 22 } 23 24 } 25 for(int i=0;i<vec.size();++i) 26 cout<<vec[i]<<endl; 27 return 0; 28 } 29