最小生成树算法思路详解,Kruskal


首先看这个东西,最小生成树,重点自然在

  • 最小

  • 这两个东西上了,那么最小生成树的定义是怎么样的?
    最小生成树是图论的东西,那它根图自然是密不可分的了
    图有边权,最小生成树则是生成把所有点连起构成的图的边权最小.
    而还得注意它是树所以其无环,而Kruskal的重心就在这;

首先随便搞一个图吧

PS:树无向!只不过顺手画上了

在这里插入图片描述
抱歉,有点草了…
数据:点1 点2 权值

		1     3     2
		2     1     1
		2     4     5
		(3无描述)
		4     1     3
		4     3     6
		5     2     7//图上忘画了-_-!
		
		

上面就是我们伟大的测试数据了,而Kruskal算法根据权值最小排列就是这样了

2     1     1
1     3     2
4     1     3
2     4     5
4     3     6
5     2     7

然后依照当前顺序重新构图,当成环时跳过即可,而连接所有点就是n-1条边(n:点数)即搞计数器如果计数器与n相同退出就好了。
演示:原图1:
在这里插入图片描述2:
2-1在这里插入图片描述
1-3
在这里插入图片描述
4-1
在这里插入图片描述
2-4!!!成环排掉,这时计数器不加
在这里插入图片描述
然后下一步
4-3同上
在这里插入图片描述
5-2
在这里插入图片描述
然后就够了,这样就好了,总权值:13
就这样了,,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值