Prim算法和Kruskal算法浅析
问题描述
举一个实例,画出采用Prim算法构造最小生成树的过程
举一个实例,画出采用Kruskal算法构造最小生成树的过程
理论解析
Prim:
初始化:向空结果树T=(Vt,Et)中添加图G=(V,E)的任一顶点u0,使Vt={ u0 },Et为空集;
循环(直到Vt=V):从图G中选择满足{(u,v)| u∈Vt,v∈V-Vt}且具有最小权值的边(u,v),并置Vt=Vt∪{v},Et=Et∪{(u,v)}。
Kruskal:
初始化:Vt=V,Et=空集。及使每个顶点构成一棵独立的树,T是一个仅含|V|个顶点的森林;
循环(直到T为树):按图G的边的权值递增的顺序依次从E-Et中选择一条边,若这条边加入后不构成回路,则将其加入Et,否则舍弃。
图示如下:
算法设计
伪代码:
Void Prim(G,