选择排序其实就是将待排序列的第一个记录标记为最小,然后将其与剩余的其他记录比较找到最小的并交换,然后将标记后移并和剩余的其他记录比较
其实现如下:
void select_sort(int *array, int length)
{
int min_index = 0; //标记最小值下标
int i = 0;
int j = 0;
int temp = 0; //用于交换
for(i = 0; i < length - 1; ++i)
{
min_index = i;
//找到最小值下标
for(j = i + 1; j < length; ++j)
{
if(array[j] < array[min_index])
{
min_index = j;
}
}
if(min_index != i)
{
temp = array[i];
array[i] = array[min_index];
array[min_index] = temp;
}
}
}