“计数排序适用于每个键是区间 ${0,\ldots,k}$ 中整数的记录。先统计每个键出现次数,再取前缀和确定各键在输出中的结束位置,最后按输入逆序稳定放置。在能以一个机器字表示键、以常数时间…”
形式陈述 ​
Word-RAM 由按非负整数地址索引的内存单元组成,每个单元保存一个
以容纳输入位置和地址,并常进一步固定
与顺序带上的图灵机相比,Word-RAM 允许一步访问任意已寻址单元;与不限制整数大小的单位成本 RAM 相比,它又用固定字宽约束每步能处理的信息。涉及溢出时,算术可规定为模
直觉 ​
现实处理器一次处理一小块固定宽度数据,也能按地址直接访问内存。Word-RAM 抽取这两个特征,让数组索引、指针和位运算得到自然的常数成本,同时拒绝把任意长整数塞进一个“单位”后免费运算。它比图灵机方便描述数据结构,又保留足够严格的信息容量边界。
位并行加速来自一个操作同时处理
例子与边界 ​
用 word 数组表示长度为
随机访问数组
大整数乘法也展示操作集边界:两个 word 相乘可能产生
推论与应用 ​
Word-RAM 是哈希、整数排序、位图和大多数数组数据结构的常用分析基线。渐近复杂度在这里以 word 指令为单位;若要换算 bit complexity,必须展开每个 word 操作的成本。它也为更弱的 cell-probe 模型提供参照:后者把内部计算设为免费,只保留访存次数。
工程实现仍会受到缓存、分支、流水线和内存层次影响,Word-RAM 不试图预测这些常数。它负责固定“一个可寻址数据单位有多大、哪些局部操作算一步”,让算法之间的理论比较不依赖无限精度捷径。
参考资料
- Torben Hagerup, “Sorting and Searching on the Word RAM,” in STACS 1998, LNCS 1373, Springer, 1998, pp. 366–398.
- Michael L. Fredman and Dan E. Willard, “Surpassing the Information Theoretic Bound with Fusion Trees,” Journal of Computer and System Sciences 47(3), 1993, pp. 424–436.