所以我试图找到迈克尔·拉宾(Michael Rabin)关于算法的细节,他在O(n)时间内找到了2D中给出一组点的最近邻居。出于某种原因,谷歌搜索完全失败了。我找到的最好(也是唯一)的描述是:http://rjlipton.wordpress.com/2009/03/01/rabin-flips-a-coin/。
如果有人对此有所了解,或者知道在哪里可以找到关于这个主题的书籍或论文(最好是在线!),我真的很感激你的权衡。
答案 0 :(得分:3)
我认为您可能无法找到该论文的一个原因是this response paper by Hopcroft and Fortune提到了一些问题。特别是,Rabin的算法声称使用随机化在O(n)时间内找到最接近的点,虽然它正确地这样做,但加速的真正原因是能够从任意实数到其整数层进行恒定时间转换。有了这个假设,Hopcroft和Fortune提出了一种确定性的O(n lg lg n)算法,用于在平面中找到最近的点。
我不知道这是否是您问题的满意答案,但至少上述链接是一个很酷的算法!
答案 1 :(得分:3)
“最近邻居”是个蹩脚的名字。它被称为“最近点问题”,例如http://en.wikipedia.org/wiki/Closest_pair_of_points_problem,它引用了Khuller和Matias的这种简化:http://www.cs.umd.edu/~samir/grant/cp.pdf