选择排序
时间复杂度:O(n^2),不稳定。
思想: 初始情况:有序空间为空,无序空间为整个待排空间。
过程: 每次从无序空间取出一个最小值和无序空间第一个元素进行交换,然后缩小无序区间,直到无序区间只剩一个元素
代码:
void select_sort(int *array, int length)
{
int i = 0;
int j = 0;
int min_index = -1;
int temp = 0;
for(i = 0; i < length - 1; ++i){
min_index = i;
for(j = i + 1; j < length && array[j] < array[min_index]; ++j){
//找出序列中最小值下标
min_index = j;
}
if(min_index != i){ //序列第一个值就是最小值,不交换
temp = array[i];
array[i] = array[min_index];
array[min_index] = temp;
}
}
// min_index = i
}