码迷,mamicode.com
首页 > 编程语言 > 详细

最小生成树算法

时间:2015-07-07 12:34:11      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

最小生成树问题:给定无向连通图G(V,E),图中共n个点,每条边有一个权值,求出n-1条边,使得n个点能够相互连通,且边的权值之和最小

 

1.Prim算法

 (1)初始化,VN={x},x为图中任意一点

 (2)循环直至VN=V

  a.在E中选取权值最小的一条边(u,v),u∈VN,v∉VN&v∈V(若权值最小的边不止一条,则任意选择其中一条)

  b.将v加入VN 

 

 2.Kruskal算法

 (1)先构造一个只含 n 个顶点,而边集为空的子图,若将该子图中各个顶点看成是各棵树上的根结点,则它是一个含有 n 棵树的一个森林。

 (2)将E中的边按权值大小排序

 (3)循环直至森林中只有一棵树,EN中有n-1条边

  a.选取权值最小的边(u,v)

  b.若点u和v属于不同的树,则将边(u,v)加入EN

最小生成树算法

标签:

原文地址:http://www.cnblogs.com/guo-xiang/p/4626399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!