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

最小生成树kruskal算法

时间:2019-09-24 21:12:46      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:设定   结构   最小   结构体   记录   没有   kruskal算法   输入   意义   

思路 :先把所有的边排个序,然后枚举所有的边(从小到大),如果当前边所连的两个点并没有在同一个集合里(这一可以用并查集来实现)(需要判断两个点是否已经连通,如果已经连通了,那么再用这条边连一遍就没有什么意义了),就连上这条边了。如果已经连了n - 1条边(n - 1条边就可以将一个图变为一个连通图),就直接退出,如果到最后都没有连上n - 1条边,当前图则不连通。

算法流程:

输入所有的边,并将他们存在一个结构体中

以边权大小值进行从小到大的排序

设定一个记录一共连了多少条边的k和一个存最小生成树边权总和的ans

枚举所有边,如果已经连了n - 1条边就退出

如果当前边的两个端点没有在同一个集合里,就把它们连起来并且ans的值加上此边的边权,k也加一

最小生成树kruskal算法

标签:设定   结构   最小   结构体   记录   没有   kruskal算法   输入   意义   

原文地址:https://www.cnblogs.com/qqq1112/p/11574876.html

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