“同一递归图像还能服务不同模型。对数方法动态化把静态结构按二进制块合并,以重建换取摊还更新;缓存无关模型通过递归布局在未知 $B,M$ 下控制块传输;并行算法模型把相互独立的子问题同时执行,并…”
模型与不变量 ​
设静态集合结构在
插入、查询与摊还代价 ​
插入单元素块后,若第
一个元素每升到第
若
有序数组例子 ​
把静态结构取为有序数组。第 0、2 层非空意味着集合由一个单元素数组和一个四元素数组组成;新插入先与第 0 层归并,再可能继续与第 1、2 层进位。成员查询在每个数组二分,因此为
适用边界与辨析 ​
方法要求查询对不交块可分解:成员关系取 OR、计数取和都可行,但“全局第二短路径”之类答案未必能由块级答案恢复。删除可用墓碑和周期重建,或维护正负结构,但重复键、稳定身份和墓碑抵消必须另定语义。它与全局重建都把昂贵工作分摊到更新上;本页用多层二进制块,后者通常维护一对整体版本。
删除与查询组合 ​
若查询答案形成可逆群,可另建插入结构
对 reporting 查询,每块返回结果后还需合并去重,成本至少包含总输出
一次进位的完整账本 ​
假设当前已有大小
一个元素每进入更高层,所在块大小至少翻倍,所以在规模达到
故每次插入摊还
参考资料
- Jon Bentley, James Saxe, Decomposable Searching Problems I: Static-to-Dynamic Transformation, Journal of Algorithms, 1980.
- Erik Demaine, MIT 6.851 Advanced Data Structures, static-to-dynamic transformation notes.