prim算法构造最小生成树
1.问题
假设G=(V,E)是连通的,TE是G上最小生成树中边的集合。算法从U={u0}(u0∈V)、TE={}开始。重复执行下列操作:
在所有u∈U,v∈V-U的边(u,v)∈E中找一条权值最小的边(u0,v0)并入集合TE中,同时v0并入U,直到V=U为止。
此时,TE中必有n-1条边,T=(V,TE)为G的最小生成树。
2.解析
算法过程如下图所示:
连接v3和v4两个点的边的权值为5,此处图中忘了标明。
(1)图中有6个顶点v1-v6,每条边的边权值都在图上;先随意选择一个顶点作为起始点,一般选择v1作为起始点,设U集合为当前所找到最小生成树里面的顶点,E集合为所找到的边,现在状态如下:
U={v1}; TE={};
(2)现在查找一个顶点在U集合中,另一个顶点在V-U集合中的最小权值,如图所示,通过图中我们可以看到边v1-v3的权值最小为1,