“用于正交范围报告时,区域与查询盒不交则剪枝,完全包含则报告整棵子树,否则递归。二维平衡 kd tree 的经典范围报告界为 $O(\sqrt n+k)$;固定更高维的指数依维数变化。”
形式陈述 ​
问题族 ​
在计算几何中,给定
二维地图点集在矩形视窗内报告是标准实例。边界点是否计入由闭区间约定决定;旋转矩形、圆盘与半空间不是 orthogonal 查询,不能沿用坐标轴分解。
二维 Range Tree ​
主树按
点集
查询
每个点出现在主树一条祖先路径的关联表中,总空间为
直觉
轴对齐查询可沿每个坐标独立切分。Range tree 先把横向区间分解成少量完整子树,再在各子树预存的纵向次序中筛选;分数级联还能让同一纵向端点在这些相关目录之间连续传递,而不重复二分。
例子与边界
二维视窗查询若命中
维数与结构边界 ​
Kd-tree 的性能依点分布与查询形状,最坏界不同于 range tree;priority search tree 针对三边范围。报告与计数也有不同空间权衡,静态关联表不自动支持点插删。把这些结构统称“空间树”会丢失可比较的保证。
semigroup query 还取决于权重运算是否可逆。若只能结合不能相减,不能随意把 counting 的前缀差技巧搬来;接口必须连同代数假设一起说明。
推论与应用
正交范围查询是地图视窗、数据库多列过滤和几何报告结构的基础接口。Range tree、k-d tree 与 priority search tree 分别选择不同的空间、查询形状和最坏界;应用时应先固定 reporting、counting 或 semigroup 聚合,而不是只按“多维搜索”选结构。
参考资料
- Jon Bentley, “Multidimensional Binary Search Trees,” CACM, 1975.
- Agarwal, Erickson, “Geometric Range Searching and Its Relatives,” 1999.