算法导论笔记——第八章 线性时间排序

8.1 排序算法的下界

定理8.1 在最坏情况下,任何比较排序算法都需要做Ω(nlgn)次比较。

推论8.2 堆排序和归并排序都是渐进最优的比较排序算法。

 

8.2 计数排序

计数排序假设n个输入元素中的每一个都是在0到k区间内的一个整数,其中k为某个整数。当k=O(n)时,排序的运行时间为θ(n)。

基本思想:对每一个输入元素x,确定小于x的元素个数。C[A[j]] = C[A[j]] + 1

 

8.3 基数排序 Radix Sort

从LSB到MSB,一位数排序算法必须是稳定的。

若b<(lgn向下取整),取r=b,可以达到渐进最优。

反之,b>=(lgn向下取整),取r=(lgn向下取整),可以达到不超过常系数范围内的最优。

 

基数排序和比较排序(快速排序)的比较:

  某些情况下,看似基数排序的时间复杂度更低,但是它的常系数通常较大。

  依赖于实现和底层硬件特性(快速排序能更有效利用硬件缓存),以及输入数据特征。

  很多θ(nlgn)的比较排序是原址排序,节省主存。

 

8.4 桶排序bucket sort

假设输入数据服从均匀分布,平均情况下桶排序的时间复杂度是O(n)。

元素均匀、独立的分布在[0,1)区间上。将n个元素分别放入各个桶,然后对每个桶进行排序,最后顺序列出所有桶。

转载于:https://www.cnblogs.com/justinh/p/6515361.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值