选择排序的理解
代码在最后,c++语言,在codeblocks17.12下运行顺利
4 |
8 |
1 |
7 |
5 |
0 |
2 |
9 |
6 |
3 |
每一次都在剩下的数字中找到最小值
0 |
8 |
1 |
7 |
5 |
4 |
2 |
9 |
6 |
3 |
0的位置与4的位置交换
0 |
1 |
8 |
7 |
5 |
4 |
2 |
9 |
6 |
3 |
1的位置与8的位置交换
0 |
1 |
2 |
7 |
5 |
4 |
8 |
9 |
6 |
3 |
2的位置与8的位置交换
0 |
1 |
2 |
3 |
5 |
4 |
8 |
9 |
6 |
7 |
3的位置与7的位置交换
0 |
1 |
2 |
3 |
4 |
5 |
8 |
9 |
6 |
7 |
4的位置与5的位置交换
0 |
1 |
2 |
3 |
4 |
5 |
8 |
9 |
6 |
7 |
5的位置与5的位置交换还是原位置
0 |
1 |
2 |
3 |
4 |
5 |
6 |
9 |
8 |
7 |
6与8的位置交换
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
7与9的位置交换
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
8的位置与8的位置交换还是原位置
1 #include <iostream> 2 3 using namespace std; 4 5 void Select_sort(int *a, int len); 6 7 int main() 8 { 9 int arr[] = {1, 4, 8, 7, 3, 0, 9, 6, 5, 2}; 10 Select_sort(arr, 10); 11 for(int i(0); i<10; i++) 12 { 13 cout << arr[i] << ' '; 14 } 15 cout << endl; 16 17 return 0; 18 } 19 // 选择排序,可以选择最小值 20 void Select_sort(int *a, int len) 21 { 22 //第一个for循环表示要找len-1次最小值 23 for(int i=0; i<len-1; i++) 24 { 25 int min_x = i; 26 //从i索引值到最后索引值,开执找最小值 27 for(int j=i+1; j<len; j++) 28 { 29 if(a[min_x] >= a[j]) 30 min_x = j; //j索引的值就被认为是最小值 31 } 32 swap(a[i], a[min_x]); 33 //第i次找到的最小值就与第i个索引值交换 34 } 35 }