码迷,mamicode.com
首页 > 其他好文 > 详细

最小生成树

时间:2016-03-27 01:15:56      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

最小生成树

对于无向图G=(V,E),连接G中所有点,且边集是E的子集的树成为G的生成树

其中权值最小的生成树叫做最小生成树(MST)

 

Kruskal算法

Kruskal算法 是一种最小生成树算法。

首先对所有边按照权值进行排序

初始化连通分量(并查集)

初始化树

循环考察每条边

  如果边的两个节点不在同一个连通分量

    将这个边插入到树中

    将两个节点对应的连通分量合并 

 

Prim算法

Prim算法是另一种最小生成树算法。

对所有边按照权值排序

初始化集合S[i]为false

声明队列Q

将所有边加入到Q中

队列不为空

若Q的最顶部的两个节点不全在集合中

  将两个点加入到集合中

  将边插入到树中

否则

  从队列中删除这条边

 

两种最小生成树的算法,大概思路都是对边排序后,将不会产生环的边逐个加入到树中

 

 1 /*
 2 By:OhYee
 3 Github:OhYee
 4 Email:oyohyee@oyohyee.com
 5 Blog:http://www.cnblogs.com/ohyee/
 6 
 7 かしこいかわいい?
 8 エリーチカ!
 9 要写出来Хорошо的代码哦~
10 */

 

最小生成树

标签:

原文地址:http://www.cnblogs.com/ohyee/p/5324498.html

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