1 #include <iostream> 2 using namespace std; 3 void selectSort(int data[],int length) 4 { 5 if (data == nullptr || length <= 0) 6 { 7 return; 8 } 9 for (int i = 0 ,j;i < length-1 ; ++i) 10 { 11 int least = i+1 ; 12 for(j = i+1 ; j < length ; j++) 13 { 14 if (data[j] < data[least]) 15 { 16 least = j ; 17 } 18 } 19 swap(data[i],data[least]); 20 printf("第%d次排序后的结果 : " ,i+1); 21 for (int i =0 ;i < length ;++i) 22 { 23 printf("%d ",data[i]); 24 } 25 printf("\n"); 26 } 27 } 28 int main() 29 { 30 int data[] = {2,5,1,4,0,-3,59,-78,62,3}; 31 selectSort(data,sizeof(data)/sizeof(int)); 32 printf("\n\n"); 33 for (int i =0 ;i < sizeof(data)/sizeof(int) ;++i) 34 { 35 printf("%d ",data[i]); 36 } 37 printf("\n"); 38 return 0; 39 }
///可以发现每次排序后,总是把次小的找出来,放到对应的位置上
最后的结果为:
原文:https://www.cnblogs.com/hit-ycy/p/10852302.html