【发布时间】:2010-12-15 09:14:21
【问题描述】:
为了找到最近的邻居,Space Partitioning 是其中一种算法。它是如何工作的?
假设我有一组 2D 点(x 和 y 坐标),并且给定一个点 (a,b)。这个算法如何找到最近的邻居?
【问题讨论】:
标签: algorithm nearest-neighbor space-partitioning
为了找到最近的邻居,Space Partitioning 是其中一种算法。它是如何工作的?
假设我有一组 2D 点(x 和 y 坐标),并且给定一个点 (a,b)。这个算法如何找到最近的邻居?
【问题讨论】:
标签: algorithm nearest-neighbor space-partitioning
空间分割实际上是一系列密切相关的算法,它们对空间进行分割,以便应用程序可以更轻松地处理点或多边形。
我认为有很多方法可以解决您的问题。我不知道您愿意构建您的解决方案有多复杂。一种简单的方法可能是构建一棵二叉树,将空间分成 2。所有点都划分在某个中间平面之间。通过递归细分直到用完点来构建树。
搜索最近的邻居将被优化,因为树的每次遍历都会缩小搜索区域。
在一些文献中,他们称之为kd tree
【讨论】:
(0,0), (1,2),(1,0),(-1,0),给出的积分是(2,2)。那么该算法将如何工作?我读过它,但我不确定如何进行分区和树遍历。如果 oyu 可以解释你在这个小例子中提到的内容,那将会很有帮助。谢谢。
(2,2) 与其他所有节点进行比较,它将以线性时间运行。那么,那这棵树有什么用呢?
这两个视频应该会有所帮助:
【讨论】: