我有两组二维点,它们被平面上的一条线分开。我想高效地找到一对点,其中一个来自每组点,它们之间的距离最小。Radu Litiu有一篇非常方便的论文,Closest Pair for Two Separated Sets of Points,但它使用的是L1(曼哈顿)距离度量而不是欧几里得距离。
有人知道类似的算法可以使用欧几里得距离吗?
我大概可以看出标准分治最近对算法的扩展——通过与原始分割线垂直的中位线将两个集合分开,对两侧进行递归,然后查找由中位线两侧的一个点组成的更近的一对。如果递归步骤中的最小距离为d,则伴随着中位线一侧的点的配对必须在一个尺寸为2d*d的盒子内。但与原始算法不同的是,我看不到任何限制该盒子内点数的方法,因此整个算法变成了O(m*n)。
有什么想法吗?
有人知道类似的算法可以使用欧几里得距离吗?
我大概可以看出标准分治最近对算法的扩展——通过与原始分割线垂直的中位线将两个集合分开,对两侧进行递归,然后查找由中位线两侧的一个点组成的更近的一对。如果递归步骤中的最小距离为d,则伴随着中位线一侧的点的配对必须在一个尺寸为2d*d的盒子内。但与原始算法不同的是,我看不到任何限制该盒子内点数的方法,因此整个算法变成了O(m*n)。
有什么想法吗?