(注意:缺少边缘重量,(T,Y,8))
在第一次迭代之前:
最小优先级队列(开始时的最小键)
Q = [(S,0),(T,∞),(X,∞),(Y,∞),(Z,∞)]
迭代1:
U = S
Q = [(T,6),(Y,7),(X,∞),(Z,∞)]
更新T和Y的键
迭代2:
U = T
Q = [(Z,-4),(X,5),(Y,7)]
更新X,Y,Z的键
迭代3:
U = Z
Q = [(X,5),(Y,7)]
没有更新
迭代4:
U = X
Q = [(Y,7)]
没有更新
迭代5:
U = Y
Q = []
没有更新
队列为空,循环终止
我们的最小生成树中有以下边缘:
(S,T,6),(T,Z,5),(T,Z,-4),(S,Y,7)
成本= 6 + 5 - 4 + 7 = 14
这显然不是MST,因为我们有其他树木成本较低,
(S,Y,7),(Y,X,-3),(X,T-2),(T,Z,-4)
费用= 7 - 3 - 2 - 4 = -2
请帮我确定哪里出错了。
供参考: (请忽略红色边缘)
答案 0 :(得分:0)
在计算机科学中,Prim的算法是一种贪婪的算法,它找到了最小的算法 生成树的加权无向图。