选择排序
名字由来
想了解一个算法的思路,可以先从这算法的名字下手,选择排序,那就是选择咯,那我们进一步去想,那不就是选择整个数组中最小或者最大的数字,放在这个数组的最前方。
思路
遍历整个数组,找到整个数组中最小或者最大的数字,把其放在最前面,当然了,放在最前面,我们还要去交换它们的,毕竟不能少个数据嘛,对不对。
代码----------------选择排序的时间复杂度为O(N ^2);
int Selection_sort(int a[])
{
int min=a[0];
int i, j;
int n = sizeof(a);
for (int i = 0; i < n - 1; i++) {
int min = i;
for (int j = i; j < n; j++) {
if (a[min] > a[j]) {
min = j;
}
}
if (min != i) {
swap(a[i], a[min]);
}
}
}