并查集的应用——生成最小树

回顾

        上期我们学习了并查集的基础(链接)。


二、并查集的应用——生成最小树

在含有n个顶点的连通网中选择n-1条边,构成一颗极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连同图的最小生成树。例如,对于如右图所示的连通图可以有多颗权值总和不相同的生成树。


应用场景

例如:要在n个城市之间建设道路,主要目标是要使这n个城市的任意两个之间都可以同行,但建设道路的费用很高,且各个城市之间建设道路的费用不同,因此另一个目标是要使建设道路的总费用最低。这就需要找到带权的最小生成树。


Kruskal算法

基本思想:

        按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路。

基本做法:

        首先构造一个只含n个顶点的森林,然后依权值从小到大从连同网中选择边加入到森林中,并使森林中不产生回路,直至森林变成一棵树为止。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值