思想
选择排序思想很简单, 但是发现网上有些人讲的和冒泡,插入含糊在一起了,这里贴上自己的理解。
选择排序是通过每次选出最大或者最小的元素, 然后与待排序区间的头或者尾(取决于升序降序)元素进行交换。每次排序一个,待排序区间长度也少一个,所以时间复杂度就是O(N^2).
实现
void SelectSort(int* a, int n) {//降序
for(int i = 0; i < n-1; i++){
int min = i;
for (int j = i+1; j < n; j++){
if(a[j] < [min]){
min = j;
}
}
if(min != i){
swap(a[min], a[i]);
}
}
}