“若元素会动态插删,顺序统计树用 $O(n)$ 空间换取最坏 $O(\log n)$ 的更新和 rank/select。若数据只能顺序到达,数据流分位数以受限空间返回带秩误差的近似答案。随机增…”
通用框架 ​
把
反向分析 ​
考察含
梯形图例子 ​
增量插入互不相交线段构造平面梯形分解。新线段只穿过与它相交的一串现有梯形,替换成新梯形;history DAG 记录旧梯形如何被替换,使点定位查询沿历史走到当前叶,而不是每次扫描全部梯形。
退化与边界 ​
共线、相同端点或多对象同时定义特征会破坏“一般位置”计数,需符号扰动或明确 tie-breaking。只证明结构改变量小还不够,寻找冲突特征和更新 conflict graph 也要计时。若对手能根据已见随机顺序在线生成后续对象,固定输入的随机排列分析不再直接成立。
Conflict graph 与 history DAG ​
Conflict graph 将尚未插入对象连到它会破坏的当前特征。插入
History DAG 保留“旧特征被哪些新特征替代”的边。点定位从初始特征开始,只沿包含查询点的孩子前进;即使旧特征已不在当前结构,它仍提供搜索导航。删除全部旧节点会省空间,却失去查询路径。
冲突图的一次更新 ​
以平面梯形图为例,插入新线段时先沿当前点定位结构找到它穿过的梯形链。删除这些冲突梯形,按线段端点和上下边界切出新梯形,再把原来指向被删区域的查询 DAG 叶替换为局部判定节点;无关区域完全不动。
冲突图显式维护“未插入对象—当前特征”边时,处理步骤是:
- 从新对象的冲突邻接表收集将被删除的特征;
- 创建局部新特征并确定其边界;
- 只扫描旧冲突邻居,把仍冲突的对象转接到新特征;
- 删除失效特征及其冲突边。
反向分析把第
参考资料
- Kenneth Clarkson, Peter Shor, Applications of Random Sampling in Computational Geometry II, Discrete & Computational Geometry, 1989.
- Mark de Berg et al., Computational Geometry, randomized incremental algorithms.