核心思想
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
算法特点
不稳定排序
最坏时间复杂度O(n^2)
空间复杂度O(1)
void selectSort(int array[], int length)
{
int i, j;
int key, temp;
for(i=0; i<length; i++)
{
key = i;
for(j=i+1; j<length; j++)
if(array[j] < array[key])
key = j;
if(key!=i)
{
temp = array[i];
array[i] = array[key];
array[key] = temp;
}
}
}