排序算法之各排序的总体概括

从时间复杂度分析最慢---->最快
  • O(n2),冒泡稳定、直接插入稳定、直接选择不稳定,虽然速度慢,但胜在简单
  • O(nlgn)–O(n2),希尔排序(插入排序的改进版),不稳定
  • 很快的O(nlgn),快排不稳定,堆排序不稳定(适合大数据),归并排序稳定,
  • 可达到On的是计数排序,基数排序,桶排序
从空间复杂度分析
  • 大部分空间复杂度都是O(1)
  • 只有归并的空间复杂度是O(n)
  • 快排是O(logn)–O(n),递归造成的栈空间的使用(用来保存L和R等局部变量),取决于递归树的深度,一般O(logn),最差O(n)
从稳定性分析

稳定性定义:排序前后两个相等的数相对位置不变,则算法稳定。(是否稳定是由具体算法决定的,稳定的在某种条件下也可以变成不稳定,参见冒泡)

稳定性的好处:从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。例如:先按姓排序,再按名排序,名排序之后可以保证姓的顺序没乱。(如基数排序)

  • 稳定排序:冒泡排序、直接插入排序、基数排序、、折半插入排序、归并排序
  • 不稳定排序:堆排序、快速排序、希尔排序、直接选择排序(可以看到有名的堆排快排都是不稳定的)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值