“计数排序适用于每个键是区间 ${0,\ldots,k}$ 中整数的记录。先统计每个键出现次数,再取前缀和确定各键在输出中的结束位置,最后按输入逆序稳定放置。在能以一个机器字表示键、以常数时间…”
形式陈述 ​
Word-RAM 由按非负整数地址索引的内存单元组成,每个单元保存一个
以容纳输入位置和地址,并常进一步固定
与顺序带上的图灵机相比,Word-RAM 允许一步访问任意已寻址单元;与不限制整数大小的单位成本 RAM 相比,它又用固定字宽约束每步能处理的信息。涉及溢出时,算术可规定为模
直觉
现实处理器一次处理一小块固定宽度数据,也能按地址直接访问内存。Word-RAM 抽取这两个特征,让数组索引、指针和位运算得到自然的常数成本,同时拒绝把任意长整数塞进一个“单位”后免费运算。它比图灵机方便描述数据结构,又保留足够严格的信息容量边界。
位并行加速来自一个操作同时处理
例子与边界
用 word 数组表示长度为
随机访问数组
大整数乘法也展示操作集边界:两个 word 相乘可能产生
推论与应用
Word-RAM 的字级比较、移位和位运算直接决定前驱查询能在多大字长下跳过逐键扫描,也让简洁数据结构在接近信息下界的空间内并行处理一个 word 的位模式。哈希、整数排序、位图和大多数数组结构都以此为分析基线。渐近复杂度在这里计 word 指令;若要换算 bit complexity,必须展开每个 word 操作的成本。更强的 cell-probe 模型把内部计算设为免费、只保留访存次数,因此其下界也适用于 Word-RAM。
工程实现仍会受到缓存、分支、流水线和内存层次影响,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.