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

1.最小生成树问题

最小生成树问题:一个图有V个顶点,找到V-1条边连接这V个顶点,使得总权值最小

最小生成树问题通常是针对带权无向图、连通图

如果图不是连通图:分别在每个连通分量上计算最小生成树---最小生成森林

应用:电缆布线设计、网络设计、电路设计

最小生成树为我们提供让所有点都连通,并且连通的点的权值最小的一个方案

2.切分定理

3.Prim算法

用于解决稠密图的最小生成树问题。

计算下图的最小生成树

算法流程:

首先将0结点为一个切分,剩下的结点为一个切分,那么0-2、0-4、0-6、0-7就是横切边

根据切分定理,0-7的权值最小,那么这时0-7这条边一定是最小生成树的一边。将7也加入到切分中

横切边1-7的权值最小,将1加入切分中

横切边0-2的权值最小,将2加入切分中

横切边2-3的权值最小,将3加入切分中

横切边5-7的权值最小,将7加入切分中

1-3的权值最小,但是此时1-3已经不是横切边了,因为1、3结点已经在切分中了

一直取最小的边,如果不是横切边则扔掉,直到取到一个横切边

横切边4-5的权值最小,将4加入切分中

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值