“本页递归的是树高,与vEB 整数树递归键宇宙不是同一结构。证明依赖平衡/完整树及连续布局;普通指针逐节点随机分配不享受界。动态插入会移动布局或产生碎片,需要 packed memory/ca…”
宇宙递归 ​
令键宇宙为
结构保存 min/max,为每个非空高位建立大小
操作与递归式 ​
前驱查询先在
每层只递归进一个规模
十六元宇宙例子 ​
空间与模型边界 ​
朴素递归为所有 cluster 预留结构,空间满足
Base case 与 min 特判 ​
删除最大值同样需在最后非空 cluster 消失时从 summary 与 cluster max 重算。min/max 特判减少递归,却是实现最容易遗漏的正确性分支。
空簇查询的返回路径 ​
求 successor(x) 时,先看 low(x) 的元素;若有,就在该簇递归。若没有,转而在 summary 中求下一个非空簇编号 index(j, cluster[j].min)。summary 也无后继时返回不存在。这个分支解释了为什么每簇必须显式维护 min,也解释了空簇不能先递归再访问其字段。
当 min/max 回答,递归停止。若实际键宇宙不是二次幂,可向上取整并拒绝填充区间中的假键;若只说“压缩坐标”,动态插入新键会改变秩,已不再是原本的在线前驱问题。
参考资料
- Peter van Emde Boas, Robert Kaas, Erik Zijlstra, Design and Implementation of an Efficient Priority Queue, Mathematical Systems Theory, 1977.
- Cormen et al., Introduction to Algorithms, van Emde Boas Trees.