排序算法系列之选择排序

来源:互联网 发布:数据备份与维护 编辑:程序博客网 时间:2024/06/09 13:33

思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

程序:

template<classT>void SelectSort(T *x,constintN)//不稳定{    for(inti =0; i < N; i++)    {        intminindex = i;        for(intj = i; j < N; j++ )        {            if(x[minindex]> x[j])            {                minindex = j;            }        }        if(minindex!= i)        {            Ttemp = x[i];            x[i]= x[minindex];            x[minindex]= temp;        }    }}

分析:

稳定性:选择排序在两数相等的情况下不交换位置,所以是稳定的。

时间复杂度:最差时间复杂度 O(n²)

辅助空间复杂度 O(1) ,一个临时变量

0 0
原创粉丝点击