排序算法——选择排序

时间:2022-04-22 22:08:21

转载:http://www.cnblogs.com/luxiaoxun/archive/2012/09/01/2666677.html

选择排序的基本思想是对待排序的记录序列进行n-1遍的处理,第i遍处理是将L[i..n]中最小者与L[i]交换位置。这样,经过i遍处理之后,前i个记录的位置已经是正确的了。
选择排序是不稳定的。算法复杂度是O(n^2 )。

//选择排序
void SelectSort(int a[],int n)
{
    int temp;
    int i,j;
    for (i = 0; i < n; i++)
    {
        int k = i;
        for (j = i+1; j < n; j++)
            if (a[j] < a[k]) k = j;
        if(k != i)
        {
           temp = a[i];
           a[i] = a[k];
           a[k] = temp;
        }
    }
}