选择排序是不稳定排序,时间复杂度为O(n^2)。
原理:
从n个元素中找到最小的那个元素与首位置上的元素交换,在从n-1个元素中找到最小的与首交换,依次重复。
代码实现
void swap(int *arr, int i, int j)
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
void selectSort(int* a, int length)
{
if (a == NULL || length < 0 || length == 0)
return;
for (int i=0;i<length-1;i++)
{
int k = i;
for (int j=k+1;j<length;j++)
{
if ( a[j]< a[k])
{
k = j;
}
}
swap(a, i, k);
}
}