第八章 线性时间排序

比较排序:在排序的最终结果中,各元素的次序依赖于太难之间的比较。

8.1 排序算法的下界

决策树:完全二叉树,某一特定排序算法对所有元素的比较操作。
节点中标注的是序号不是元素值。

8.2 计数排序

需要了解输入数组中最大值可能是多大。
通过对输入数组中的元素进行计数来排序。
非原地算法,需要额外的n+k个空间。
排序是稳定的。最后一个循环从后向前遍历保持了稳定,否则不稳定。

练习

8.2-4 类似计数排序,建立存储,然后用a,b位置上的计数相减

8.3 基数排序

基数排序需要使用其他稳定的排序算法。
其对排序多关键字的记录,并多个关键字之间有优先级关系,是可用的。
基数排序是有缺陷的,其要求关键字个数相同,不能有记录缺失一个或多个关键字。
显然,关键字的选择非常关键,并且对时间复杂度产生影响。

8.4 桶排序

假设输入均匀分布,在 [0,1) 之间。需要额外的空间。
每个桶内期望元素数量的平方和总的元素数量呈线性关系,排序的时间复杂度中保持线性(即使输入不是均匀的)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值