有效索引数千个移动点的数据结构?

时间:2013-02-03 03:18:22

标签: java algorithm data-structures

情况:

我可能有成千上万的移动(2D)点。它们只相互影响到一定的半径。他们可以从一个地方移动到另一个地方(不是传送,只是在屏幕上飞行,基本上)。

由于我必须检查每个滴答的更新,因此有效地执行此操作非常重要。

我天真的解决方案是简单地创建一个网格类型结构,网格间距在效果半径附近,当点从一个单元移动到另一个单元格时,更新它们所在的单元格。所以当我需要进行效果检查时,我只必须检查一个点的单元格和几个相邻的单元格。

我熟悉四叉树,但我担心它比我需要做的贵一点,但如果这确实是正确的路线,我愿意接受建议。

此外,有关添加的信息,请使用Java。

由于

1 个答案:

答案 0 :(得分:1)

我和我的下一个项目将处于类似情况 我选择了简单的网格变体,因为它更简单,更快速地实现。 成千上万的人在四角树或k-d树有意义的边界处。 (特别是当许多细胞都是空的时候)

您应该尝试测试网格方法是否足够。可能是。