在未排序的整数中找一个最小的整数,将它放在已排序的整数列表最后
要点:选择排序选最小的,往左边放。
比冒泡排序简单,交换次数少。
想象成丢手绢
#include<iostream>
using namespace std;
void SelectSort(int *a, const int n);
int main(){
int x[] = { 1, 3, 5, 7, 9, 0, 2, 4, 6, 8 };
SelectSort(x, 10);
for (int k = 0; k < 10; k++){
cout << x[k] << " ";
}
cout << endl;
system("pause");
return 0;
}
void SelectSort(int *list, const int n){
//10个数比较9遍即可
for (int i = 0; i < n - 1; i++){
int min = i;//min就是毛巾
for (int j = i + 1; j < n; j++){
if (list[j] < list[min]){
min = j;
}
}
swap(list[i], list[min]);
}
}
总结:选择排序没有那么多交换,每次只是记下最小值的小标,然后交换。