0

我想对该算法进行一些澄清,以在一组点中找到最近的一对点。

所以解决这个问题的一种方法是将点递归地分成两半,在每一半中找到最接近的点对。然后我们必须检查点中间的条带,看看那里是否有更接近的对。

我解决这个问题的步骤是: 1. 取所有点并按 X 坐标排序,然后将点分成两半。2. 递归地找到每一半的壁橱对

  1. 找到中心带中的点(通过取中点 x 坐标 +/- 到目前为止找到的最小距离来计算)并将它们分开

这是我的问题

  1. 我按它们的 y 坐标对该条带内的点进行排序,然后通过它们检查是否有一组更靠近的点。

我感到困惑的部分 - 我应该将这些点与条带中的其他点进行比较以查看是否有更接近的一对,还是应该将这些点与来自步骤 1 的原始点集中的相邻点进行比较,这些点是按 x 坐标排序。

我知道有证据表明我只需要检查一定数量的邻居,但我很困惑“邻居”是否来自原始点集,或者我是否应该只查看中心地带的点。

我希望这是有道理的-感谢您的澄清。

编辑:我想说我想我只会比较条带本身内的点(因为当我们查看一半时,条带之外的任何东西都会被比较) - 我只是想澄清一下。也是的,这是算法的规范 D&C 版本,我只是想确保我正确理解它,中间带内的点让我有点困惑。

4

0 回答 0