选择排序
选择排序即在每一步中选取最小值重新排列,从而达到排序的目的
流程:
(1)先从原始数组选择一个最小数据和第一个位置交换
(2)剩下的n-1个数据选择最小的和第二个位置交换
(3)不断重复直到最后执行完成
1 #include<iostream> 2 #include<cstdlib> 3 #include<ctime> 4 using namespace std; 5 void SelectionSort(int a[],int len) 6 { 7 int k,t; 8 for (int i = 0; i < len-1; i++) 9 { 10 k=i; 11 for (int j = i+1; j < len; j++) 12 { 13 if (a[j]<a[k]) k=j; 14 } 15 if (k!=i) 16 { 17 t=a[k]; 18 a[k]=a[i]; 19 a[i]=t; 20 } 21 cout<<"Sort Result in"<<i+1<<"step:"<<endl; //输出每一步的排序结果 22 23 for (int k = 0; k < len; k++) cout<<a[k]<<" "; 24 cout<<endl; 25 26 } 27 28 } 29 int main() 30 { 31 int array[10]; 32 srand(time(NULL)); //这里采用随机数输入数组 33 cout<<"Array before sorting:"<<endl; 34 for (int i = 0; i < 10; i++) 35 { 36 array[i]=rand()/1000; 37 cout<<array[i]<<" "; 38 } 39 cout<<endl; 40 SelectionSort(array,10); 41 cout<<"Array after sorting:"<<endl; 42 for (int i = 0; i < 10; i++) cout<<array[i]<<" "; 43 cout<<endl; 44 return 0; 45 }