动态空间分区树数据结构?

时间:2014-04-25 16:11:36

标签: algorithm geometry theory computational-geometry

我有一个应用程序,我需要做最近邻,矩形/多边形重叠和其他基本的计算几何操作,以防止动态变化的数据(所有2d。)我理解静态情况下的基本数据结构(四维,二维) Kd-trees,R-trees,BSP等)但我想了解动态案例中的最新技术。似乎很难知道何时/如何平衡插入和删除。例如,是否存在动态数据结构,它针对O(log n + k)中的n个点回答k个最近邻居,其中插入和删除采用O(log n)(可能是摊销的)?是否有标准参考资料总结了有关此问题的知识?

2 个答案:

答案 0 :(得分:1)

说实话,我自己并没有用动态树做太多(大部分都是静态的)。但我相信Bkd树纸(21世纪初?)是很好的起源。我相信从那时起它已被多次引用。您可以使用acm / citeseer等来源跟踪引用它的较新论文。旁注:我认为Bkds可以使用公共代码,因此您可以在不花太多时间的情况下玩它 - 看看它是否适合您。

Bkd-Tree:动态可扩展的kd-Tree Octavian Procopiuc,Pankaj K. Agarwal,Lars Arge和Jeffrey Scott Vitter

答案 1 :(得分:0)

您可以尝试怪物曲线(空间填充曲线)。快速算法是简单地交织x和y坐标。它也可能有3个维度。