1

我一直在阅读算法设计手册。我有同样的问题,在这个最近邻算法中“来自不同的顶点链”是什么意思?但我无法遵循那里的答案。

一个不同的想法可能是重复连接最近的一对端点,它们的连接不会产生问题,例如循环的提前终止。每个顶点都从​​它自己的单个顶点链开始。将所有内容合并在一起后,我们将最终得到一个包含其中所有点的链。连接最后两个端点给了我们一个循环。在执行此最近对启发式的任何步骤中,我们将有一组可用于合并的单个顶点和顶点不相交的链。在伪代码中:

ClosestPair(P)
    Let n be the number of points in set P.
    For i = 1  to n − 1 do
        d = ∞
        For each pair of endpoints (s, t) from distinct vertex chains
            if dist(s, t) ≤ d then sm = s, tm = t, and d = dist(s, t)
        Connect (sm, tm) by an edge
    Connect the two endpoints by an edge
Please note that sm and tm should be sm and tm.

我无法遵循上述逻辑。请演示书中给出的简单示例的计算:-21, -5, -1, 0, 1, 3, and 11。逐步显示计算,以便您可以轻松地遵循上面的代码。

4

1 回答 1

8
于 2012-10-30T11:43:22.100 回答