“若键是一字整数,超越比较的整数排序可利用数位与字操作,问题已不受快速排序的比较决策树约束。数据驻留外存时,外存排序以块传输为成本,快速排序的原地局部性不自动达到最优 I/O 界;应把比较数、…”
形式陈述 ​
模型分界 ​
比较决策树只能询问两个键的次序,因
基线算法 ​
Counting sort 用
32 位无符号整数按字节处理时做四趟、每趟 256 个桶,这是固定机器字段上的真实工程方案;渐近分析中不能因此把随
更高级的突破 ​
当
直觉
比较排序每次只得到一个二元次序答案,整数算法却能一次读取多个 digit、抽取重要位或把若干键打包处理。它们突破的是信息访问模型的限制;宇宙大小、字长、允许的算术与随机化一旦改变,复杂度结论也随之改变。
例子与边界
边界与消歧 ​
超长大整数可能跨多个机器字,位提取不再
Radix 正确性不变量 ​
最低有效位优先排序在第
最高有效位优先 radix 则递归各桶,不依赖同一稳定性不变量,但递归栈、空桶和短键终止条件不同。两类都使用 digit,不应只报“
推论与应用
超越比较下界依赖键的数字结构:基数排序按若干 digit 稳定分趟,计数排序在单趟中按有限键域计数并前缀定位。字长、基数和辅助空间决定总时间。
四趟字节排序的完整不变量 ​
对 32 位无符号键、基数
时间为
额外空间为
更快的理论结果常使用乘法、打包、哈希或随机化,并把
参考资料
- Yijie Han, Mikkel Thorup, Integer Sorting in O(n√log log n) Expected Time and Linear Space, FOCS, 2002.
- Arne Andersson et al., Sorting in Linear Time?, STOC, 1995.
- Cormen et al., Introduction to Algorithms, 4th ed., MIT Press, 2022, counting and radix sorting.