知识大全 图 - 生成树和最小生成树 - 最小生成树(三)
Posted 知
篇首语:金鞍玉勒寻芳客,未信我庐别有春。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 图 - 生成树和最小生成树 - 最小生成树(三)相关的知识,希望对你有一定的参考价值。
克鲁斯卡尔(Kruskal)算法
( )算法思想
①T的初始状态
只有n个顶点而无边的森林T=(V ¢ )
②按边长递增的顺序选择E中的n 安全边(u v)并加入T 生成MST
注意
安全边指两个端点分别是森林T里两棵树中的顶点的边 加入安全边 可将森林中的两棵树连接成一棵更大的树
因为每一次添加到T中的边均是当前权值最小的安全边 MST性质也能保证最终的T是一棵最小生成树
( )算法特点
该算法的特点是 当前形成的集合T除最后的结果外 始终是一个森林
( )Kruskal算法的抽象描述
KruskalMST(G)//求连通网G的一棵MST
T=(V ¢); //初始化 T是只含n个顶点不包含边的森林
依权值的递增序对E(G)中的边排序 并设结果在E[ e ]中
for(i= ;i
取E[0..e-1)中的第i条边(u,v);
if u和v分别属于T中两棵不同的树then
T=T∪(u,v);//(u,v)是安全边,将其加入T中
if T已是一棵生成树then
`` return T;
//endfor
return T;
(4)用Kruskal算法构造最小生成树的过程
用Kruskal算法构造最小生成树的过程【 参见动画演示 】
>
(5)算法分析
该算法的时间复杂度为O(elge)。wInGWiT.
Kruskal算法的时间主要取决于边数。它较适合于稀疏图。
cha138/Article/program/sjjg/201311/23825相关参考