中文

更简单更快效:通过沿空间填充曲线排序实现距离报告

计算几何 2025-12-05 v3

摘要

范围报告是计算几何中的经典问题。(矩形)报告数据结构存储一组点集P,使得给定(矩形)查询区域Δ后,可返回P∩Δ中的所有点。各种数据结构支持此类查询,具有不同的渐近保证,如k-d树、范围树、R树和四叉树。范围查询的一个常见变体是距离报告查询,其输入为查询点q和半径δ,目标是在q与δ距离内返回P中的所有点。此类查询常作为几何数据结构的子程序出现。实际实现通常通过上述数据结构的矩形范围查询来回答距离查询。本文重访了一个简单且实用的启发式方法,最初提出于TCS'97:沿空间填充曲线对输入点集P进行排序。查询随后可简化为在排序曲线上最多扫描四个连续范围。空间填充曲线有利于范围报告的事实是众所周知。许多实现利用此技术加速查询和构建时间。本文的观点是细微但有趣的:我们认为,往往是空间填充曲线本身而非整体数据结构提供了性能优势。因此,我们提供一种简单而有效的替代方案:仅对P沿空间填充曲线进行排序。我们将该方法与八种范围搜索实现进行比较,涵盖详尽的真实世界和合成数据的测试套件。我们的实验确认,这种仅需200行代码的方法在空间使用和构建时间方面均优于所有高端实现,在几乎总能提供最佳查询时间方面表现突出。在动态设置下,我们的方法在性能上遥遥领先。

关键词

引用

@article{arxiv.2508.19891,
  title  = {Simpler is Faster: Practical Distance Reporting by Sorting Along a Space-Filling Curve},
  author = {Sarita de Berg and Emil Toftegaard Gæde and Ivor van der Hoog and Henrik Reinstädtler and Eva Rotenberg},
  journal= {arXiv preprint arXiv:2508.19891},
  year   = {2025}
}