数据结构-排序算法比较(内部排序)

内部排序算法的比较

  1. 时间复杂度
最坏最好平均
直接插入O(n2)O(n)O(n2)折半插入与之类似
冒泡O(n2)O(n)O(n2)
简单选择O(n2)与初态无关
希尔O(n1.3)具体不确定
快排O(n2)O(nlog2n)分治
归并O(nlog2n)分治
堆排序O(nlog2n)线性时间建堆
基数排序O(d(r+n))与初态无关
  1. 空间复杂度
最坏平均
直接插入O(1)
冒泡O(1)
简单选择O(1)
希尔O(1)
快排O(n)O(log2n)递归栈
归并O(n)
堆排序O(1)
基数r队列

3.稳定性

稳定性排序
稳定直接插入,折半插入,冒泡,归并,基数
--------------------------------------
不稳定希尔,快速,简单选择,堆排序
  1. 特点
  • 冒泡,子序列全局有序

  • 简单选择,子序列全局有序

  • 快速,每次确定一个元素的最终位置

    若选取第一个元素作pivot(枢轴)
    当前序列越有序,复杂度越趋于O(n2)

  • 堆排序,子序列全局有序

    适合关键字较多的情况

    例:查找出1000个数中最大的10个

    解:使用前10个数建立小根堆,每次从后面剩余中取1个数,与根比较,若大则将 根替换,否则舍弃取下一个数比较。

  • (直接,折半)插入排序,子序列局部有序

  • 希尔排序

    堆排序一样,不适合用链式结构,因为是跳着读取,应用了顺序表的随机访问存取性质,若改为链式存储,则会降低算法效率

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值