首页 > 编程语言 > 详细

图论之最小生成树之Kruskal算法

时间:2019-06-08 20:09:54      阅读:156      评论:0      收藏:0      [点我收藏+]

Kruskal算法,又称作为加边法,是配合并查集实现的。

图示:

如图,这是一个带权值无向图我们要求它的最小生成树。

技术分享图片


首先,我们发现在1的所有边上,连到3的边的边权值最小,所以加上这条边。

技术分享图片


 

然后在3上,连到4的边权值最小,加上这条边。

技术分享图片


最后,4连到2的边是最小的,加上这条边。

现在,所有点都连通了,所以这个图的最小生成树就是2+2+1=5

 

技术分享图片


 

从上述操作中可以看出,Kruskal算法是需要贪心的思想的。

那怎么来实现这个贪心呢?

简单,一个sort足矣!


 

所以这整个Kruskal算法的思路是:

  1. 初始化
  2. 排序
  3. for循环遍历所有边,如果两个图没有连通(get(x)!=get(y)),就给它加上边,cnt再加上这条边的边权值。

例题及讲解

END

图论之最小生成树之Kruskal算法

原文:https://www.cnblogs.com/herobrine-life/p/10991211.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!