几种排序的简要分析

几种排序的归纳总结(未完待续)

  • 选择排序: 选择排序开始的时候,我们扫描整个列表,找到它的最小元素,然后和第一个元素交换,把最小的元素放到它应该放置的位置,同样,我们在剩下的元素中寻找最小的把它放到应处的位置。
伪代码:
    for(int i=0;i<=n-2;i++){
        min=i;

        for(int j=i+1;j<=n-1;j++){
            if(A[j]<A[min])
                min=j;  
        }
        swap(A[j],A[min]);
    }
  • 冒泡排序: 比较相邻元素,如果是逆序,就交换他们的位置,重复多次之后,最大的元素就沉降到列表的最后一个位置,第二遍操作将第二大的元素沉下去,一直这么做,到n-1遍以后,列表就已经排好序了
伪代码
    for(int i=0;i<=n-2;i){
        for(j=0;j<=n-2-i;j++){
            if(A[j+1]<A[j])
                swap(A[j],A[j+1])
        }           
    }
  • 插入排序: 从只有两个元素排序开始,我们要把另外一个数插入到这个有序数组里面去,边排序边插入,知道所有元素都已经到达所处位置,
伪代码
    for(int i=1;i<=n-1;i++){
        v=A[i]
        j=i-1
        while(j>=0&&A[j]>v){
            A[j+1]=A[j];
            j=j-1;
        A[j+1]=v;
        }       
    }
  • 希尔排序: 希尔排序是一种重要的排序算法,它对一个给定序列的若干长子序列分别应用插入排序。对序列的每一遍操作,都根据一些事先定义好的递减的步长队列h1>h2>…>1来构造要求的子序列。步长必须以1结尾,(对于希尔排序来说,步长队列为121,40,13,4,1的效率应该是最高的)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值