我一直在关注Coursera关于算法的课程,并提出了关于最近对问题的分治/征服算法的想法,我想澄清一下。
根据Roughgarden教授的算法(如果您感兴趣,可以看here): 对于给定的一组点P,其中我们有两个副本 - 在X和Y方向排序 - Px和Py,算法可以给出为
closestPair(PX,PY):
现在,我想要的澄清与第5步有关。 我应事先说出来,我所建议的,几乎没有任何改善,但如果你还有兴趣,请提前阅读。
R教授说,由于这些点已经在X和Y方向排序,为了在步骤5中找到最佳对,我们需要迭代宽度为2 * delta的条带,从底部到上部,并且在内循环中,我们只需要7次比较。这可以只改为一个吗?
我认为有可能在纯文本中解释有点困难,所以我画了一张图并将其写在纸上并上传到这里:
由于没有其他人想出来,我很确定我的想法中存在一些错误。 但我现在一直在考虑这个问题,我只是想发布这个。这就是我的想法。
有人能说出我出错的地方吗?
答案 0 :(得分:5)
你在第5点的结论是不正确的。尝试将点A拉近分界线。
你可以在A的一个delta(一个在上面,一个在下面)内有两个点,它们不在彼此的delta之内。
| B
|
A|
|
| C
此处dist(A,B) = dist(A,C) < dist(B,C)
。
这是一个完美的例子,说明为什么图片有助于获得直觉,但仍需要证据来支持你的结论。