minimum-spanning-tree - Prim 和 Kruskal 算法

标签 minimum-spanning-tree prims-algorithm kruskals-algorithm

Prim 算法和 Kruskal 算法都生成最小生成树。根据 cut 属性,这些算法的树的总成本将是相同的,但是考虑到我们在面临多个选择时按字母顺序选择它,这两种算法是否有可能以相同的总成本给出不同的 MST .例如,我们比较 max(source,dest),对于边 A->B 和 B->C,我们比较 A 中的 A->B 和 B 中的 B->C。

谢谢

最佳答案

假设您的比较器处理两条边的成本相等并且具有相同的 max(source, dest) 字符的情况,它永远不会声明任何两条边相等。对于存在多个 MST 的可能性,图中至少有两条边必须相等。因此,MST 是唯一的,Prim 和 Kruskal 算法将返回相同的结果。

另一方面,如果您的比较器声明边 A->B(成本 1)和 A->C(成本 1)相等,则算法可能会生成不同的 MST,具体取决于它们首先考虑的边(A->B 或 A->C)。

关于minimum-spanning-tree - Prim 和 Kruskal 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314796/

相关文章:

algorithm - 在 Kruskal 算法中存储路径信息

algorithm - 请解释优先级队列中Decrease-Key和Extract-Min操作之间的关系

algorithm - Prim 和 Dijkstra 算法的区别?

c++ - 克鲁斯卡尔算法解释

algorithm - 城市中电厂的最优分布

algorithm - 在线性时间内从具有 "very few"边的图构建 MST

java - 将 c++ 代码翻译成 Java 没有成功

algorithm - 针对已知边缘权重优化的 Prim 算法?

java - Kruskal 与堆或排序算法

python-3.x - python中的Kruskal算法