我有一组点,需要知道哪一个离其它所有点的欧几里得距离最远。 我想从O(n^2)上改进这个算法。
现在,我听说了Kd树可以解决这个问题,但是如果点'x'已经存在于Kd树中,Kd树无法提供最近的距离。而且没有相应的实现来移除它。
编辑: 您可以通过在“最近搜索算法”和“设置根/父节点”的开始搜索时忽略自身来解决此问题。
我有一组点,需要知道哪一个离其它所有点的欧几里得距离最远。 我想从O(n^2)上改进这个算法。
现在,我听说了Kd树可以解决这个问题,但是如果点'x'已经存在于Kd树中,Kd树无法提供最近的距离。而且没有相应的实现来移除它。
编辑: 您可以通过在“最近搜索算法”和“设置根/父节点”的开始搜索时忽略自身来解决此问题。
ld n
是什么?log2是什么? - XCSld
在德国被广泛使用 :D - XCS我猜你想找到最大化距离最近邻居的点,就像南太平洋上的小岛距离最近的陆地有1100英里。
好吧,你不应该使用O(n^2)。假设你有一百万个点,将这些点分成一个1000 x 1000的网格。要找到最近的点,你只需要检查九个相邻的网格,所以你远远低于O(n^2)。如果一个网格包含很多点,它们会很接近,因此你可以快速从搜索中删除它们。