“实现的分界来自计算模型。二叉搜索树只用比较,在平衡时给 $O(\log n)$;van Emde Boas 树利用有界整数宇宙的递归分簇获得 $O(\log\log U)$,但朴素空间依赖…”
形式陈述 ​
模型、接口与保证 ​
设静态集合
Fusion tree 是分支度
量级的多路搜索树。每个内部节点保存至多
因此静态前驱查询最坏用
重要位与保序 sketch ​
设一个节点的有序分隔键为
把这些键放入二进制 trie。每个真正发生分叉的位称为重要位;
对节点内任意两个键
这条保序性质是核心不变量。Sketch 不是一般哈希:它可以丢掉大量位,却绝不能打乱当前节点键的相对次序。
一字中的并行比较 ​
把节点键的 sketches 按递增顺序打包为
每个字段前放一个保护位并留出足够间隔。预处理掩码和乘法常数可以在
是否成立,再由最高置位定位 sketch rank。经典选择
查询
直觉
一个多路节点中的键只在少数真正分叉位上需要彼此区分。Fusion node 抽取这些位,把所有分隔键的短 sketch 放进一个机器字,并用带保护位的算术同时比较查询;树高因高分支度下降,而每层仍只花常数字操作。
例子与边界
具体例子:四个键的三个分叉位 ​
考虑八位键
压缩 trie 只在从高到低的第
顺序与原键完全相同。查询
在每个树节点重复同样过程,一次 fusion-node 搜索决定一个多路子树,经过
失败边界与近邻结构 ​
B 树也用高分支度降低树高,但节点内通常仍做比较或块内搜索;Fusion tree 的额外收益来自把多个整数比较压进一个字操作。若键跨越许多机器字、比较器要执行昂贵语义,或
比较排序的
本页给出经典静态主线。动态 fusion tree 需要维护重要位、打包常数和节点分裂,原论文有更复杂方案;不能仅把普通 B 树插入代码接到静态 fusion node 后便宣称同样的最坏更新界。
推论与应用
Fusion Tree 把多个关键位压入一个机器字并并行比较,核心依赖四俄罗斯方法与字级并行式的表查与字内并行。允许的乘法、移位和字长假设是时间界的一部分。
Fusion tree 给整数 predecessor、整数排序子程序和 Word-RAM 上的次对数搜索提供基本构件,也展示了为何比较模型下界不能直接约束字级并行。动态版本、跨字键和弱操作集需要独立结构,不能从静态 fusion node 的查询界顺推。
参考资料
- Michael L. Fredman and Dan E. Willard, “Surpassing the Information Theoretic Bound with Fusion Trees,” Journal of Computer and System Sciences 47(3), 1993, 424–436.
- Erik D. Demaine, MIT 6.851 Advanced Data Structures, integer data structures and fusion trees, accessed 2026.
- Peter Bro Miltersen, “Cell Probe Complexity—A Survey,” in Advances in Data Structural Query Processing, American Mathematical Society, 2000, pp. 183–217.