假设我们有两组点A,B,并且我们要为A中的每个点查找B中最接近的邻居。
有很多好的算法可以找到一个点的最近邻居。有什么方法可以使用我们从a_1获得的信息来更有效地搜索a_2或集合中其他点的最近邻居?
我在想类似的事情:使用三角形不等式获取B中每个点与新点a_2之间的可能距离的间隔,并对间隔的最大值和最小值进行排序,然后我只能搜索B中落在该点中的点。第一间隔。
步骤2的详细信息:将Voronoi图的所有边缘(当前已与扫掠线相交)保留在某个有序容器中。当扫掠线覆盖Voronoi图的某个顶点时,请从容器中/向容器移除/添加入射到该顶点的边。要查看某个点位于哪条边之间,请在容器中将此点的后继/前任边获取到。
时间复杂度为O((M + N)log M)。N = | A |,M = | B |。