【发布时间】:2014-01-03 12:13:03
【问题描述】:
我在 5 维空间中有大约 10 K 点。我们可以假设这些点在空间 (0,0,0,0,0) 和 (100,100,100,100,100) 中随机分布。显然,整个数据集可以很容易地驻留在内存中。
我想知道 k 最近邻的哪种算法运行得更快,kd-tree 或 RTree。
虽然我对这两种算法有一些非常高级的想法,但我不确定哪个会运行得更快,以及为什么。如果有的话,我愿意探索其他可以快速运行的算法。如果可能,请说明算法运行速度更快的原因。
【问题讨论】:
-
致反对的选民。我认为这个问题提出的很好。当涉及到加速结构时,它们的理论逻辑和实际性能往往会大相径庭。事实上,R 树的推动力是 Guttmann 需要一种加速结构,该结构在随机读取速度较慢的磁盘上表现良好。这个概念也可以扩展到缓存。
标签: algorithm spatial nearest-neighbor kdtree r-tree