首页 > 代码库 > 选择排序

选择排序

先上代码:

void SelectSort(int *array, int length)
{
    int i,j,t,min;

    for(i=0; i<length; i++)
    {
        min = i;
        for(j=i+1; j<length; j++)
        {
            if(array[min] > array[j])
            {
                min = j;
            }
        }
        if(min != i)
        {
            t = array[i];
            array[i] = array[min];
            array[min] = t;
        }
    }
}

对于一个长度为n的数组:

需要比较(n-1)n/2次,时间复杂度为 技术分享 

最好的情况下,不需要进行数组元素交换;最坏的情况下,需要进行(n-1)次数组元素交换。

选择排序