我知道 Prim 算法和 Dijkstra 算法之间的区别。前者产生一个 MST,而后者给出从源到所有节点的最短路径。从数学上讲,它们并不相同,因此我们并不总是期望这两种算法产生相同的结果。
但是,在尝试不同的示例时,我得到了相同的结果。Prim 算法和 Dijkstra 算法的伪代码看起来也非常相似。有人可以给我一个例子,其中 Prim 产生的 MST 在使用 Dijkstra 解决时无法获得,反之亦然。
另外,据我所知。这两种算法都使用以下方法。如果我错了,请纠正我:
找到最短的 ij,其中 i 来自已包含的集合和 j 来自尚未包含的集合,然后将 j 添加到集合中。