RTree与kd-trees的性能

时间:2013-12-16 07:10:16

标签: algorithm spatial nearest-neighbor kdtree r-tree

我在5维空间中有大约10 K点。我们可以假设这些点随机分布在空间(0,0,0,0,0)和(100,100,100,100,100)。显然,整个数据集很容易驻留在内存中。

我想知道k最近邻居哪个算法运行得更快,kd-tree或RTree。

虽然我对这两种算法有一些非常高级的概念,但我不确定哪种算法运行得更快,以及为什么。我愿意探索其他可以快速运行的算法。如果可能,请说明算法运行速度更快的原因。

1 个答案:

答案 0 :(得分:3)

这取决于各种参数。最重要的是你实现这些算法的能力。

我个人发现批量加载的R * -trees对于大数据更快,可能是因为他们有一个更好的扇出。批量加载的R-tree是一个更公平的比较,因为kd-tree通常是批量加载的(实际上,它们根本不支持增量操作)。

对于微小数据,kd-tree可能会更快,而且实现起来要简单得多。

对于其他事项,请参阅前面的问题/答案:

https://stackoverflow.com/a/11109467/1060350