算法设计与分析-4讲解.ppt

算法设计与分析-4讲解

S={1,3,6,4,2} S={1,3,6,4,2, 5} 实现Prim算法时,应当考虑如何有效地找出满足条件i?S, j?V-S,且权c[i][j]最小的边(i,j)。 方法:设置2个数组closest和lowcost。 在Prim算法执行过程中,先找出V-S中使lowcost值最小的顶点j,然后根据数组closest选取边(j,closest[j]),最后将j添加到S中,并对closest和lowcost作必要的修改。 用这个办法实现的Prim算法所需的计算时间为 Kruskal算法 基本原理: Step1. 将G的n个顶点看成n个孤立的连通分支 Step2. 将所有的边按权从小到大排序 Step3. 从权最小的第一条边开始,依边权递增的顺序查看每一条边v,w,并按下述方法连接2个不同的连通分支: 当查看到第k条边(v,w)时, 1) 如果端点v和w分别是当前2个不同的连通分支T1和T2中的顶点时,用边(v,w)将T1和T2合并成一个连通分支,然后继续查看后续第k+1条边 2) 如果端点v和w已经属于当前的同一个连通分支中,不允许将(v,w)加入,否则会产生回路。 此时,直接再查看后续第k+1条边 Kruskal算法 Step4. 持续上述过程,直到只剩下一个连通分支——最小生成树 E.g. 5 6 3 2 4 1 St

文档评论(0)

1亿VIP精品文档

相关文档