四叉树实现中反向查找的成本/收益

Posted

技术标签:

【中文标题】四叉树实现中反向查找的成本/收益【英文标题】:Cost/Benefit of Reverse Lookup in Quadtree Implementation 【发布时间】:2015-06-24 18:03:51 【问题描述】:

我最近写了一个点四叉树实现,其中基于 (x, y) 坐标插入点。每个点都有一个唯一的 point_id。

它现在没有反向查找——如果你想找到一个点,你需要传递坐标。

维护下面的伪代码有什么好处吗?

Map(point_id, [pointers to subtrees in quadtree that contain the point])

实施这样的事情有什么好处和坏处?

【问题讨论】:

【参考方案1】:

TL;DR 不需要传递几个字节坐标的本质好处是不值得的。

我做了一些概念性的工作,并研究了实现所需的内容,与内存使用和执行时间的潜在不利因素相比,反向查找似乎几乎没有好处。

出于这个原因,我选择维护基于坐标的实现,我发现它在规模上表现出色。

【讨论】:

以上是关于四叉树实现中反向查找的成本/收益的主要内容,如果未能解决你的问题,请参考以下文章

Apache Spark - 实现分布式四叉树

四叉树空间索引原理及其实现

四叉树空间索引原理及其实现

用于二维碰撞检测的四叉树

在Unity中使用四叉树算法绘制地形

LeetCode 0427「建立四叉树」