排序算法性能

平均情况:堆、归、快   最好情况:冒、直  最差情况:堆、归>快

一、插入排序

        直接插入:从第二位开始  变为哨兵 前面超后移动 哨兵归位

        希尔排序:dk/=2间插入排序

二、交换排序

        冒泡排序:共(n+...+3+2+1)次 两两比较交换 

        快速排序:前后与“枢纽”比较+“枢纽”左右分治  注:需要借助递归栈,容量和递归深度一样O(log2n)

三、选择排序

        简单选择:依次选max 找下标 放最后

        堆排序:

        1、排序:初始建立大顶堆->【交换第一个和最后一个数字->大顶堆调整-〉长度减减】<-循环

              1)大顶堆调整:【父亲 = 大儿 ;大儿比他的大儿小;】<-重复重复。最后 最后的孩子变成最开始的“小父亲”。

              2)初始建立大顶堆:从下往上依次调整非根节点(len/2~0),把最大的逼上去

              注意:a[0]暂存根节点,a[i]左孩子a[2i]右孩子a[2i+1]

四、归并排序

        递归分割+合并(合并的时候进行比较)

        注意:合并的时候需要把原数组A复制到一个临时数组B,临时数组从a[low]和a[mid+1]开始两两向后做比较,小的数存入原数组A[k++]

五、基数排序 

        MSD LSD

        辅助空间:r个队列(如基数r=10)

        时间:O(d(n+r))  d位数 n个数 r队列数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值