0
点赞
收藏
分享

微信扫一扫

数据结构学习——排序(2)

残北 2022-03-11 阅读 81

简单选择排序

基本思想:在待排序的数据中选出最大(小)的元素放在其最终的位置

基本操作:

1、通过n-1次关键字比较,从n个元素中找出关键字最小的元素,将其与第一个元素交换

2、再通过n-2次比较,从剩余n-1个元素中找出关键字次小的元素,将其与第二个元素交换

3、重复以上操作,共进行n-1趟排序后,排序结束

void SelectSort(SqList &K){
     for(i=1;i<L.length;i++){
        k=i;
        for(j=i+1;j<L=.length;j++){
            if(L.r[j].key<L.r[k].key)  k=j;
        }
        if(k!=i){
           temp=L.r[i];
           L.r[i]=L.r[k];
           L.r[k]=temp;
        }
     }
}

时间复杂度分析:

最好情况:移动次数为0次

最坏情况:移动次数为3(n-1)次

无论待排序列处于什么状态,选择排序所需进行的比较次数都相同,为\frac{n}{2}(n-1)


 

举报

相关推荐

0 条评论