对最小生成树算法的理解

本文通过一个具体实例详细介绍了Prim算法的基本思想及其应用过程。该算法用于寻找加权图中的最小生成树,通过逐步选择权重最小的边来构建最终的树结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚看完书里讲最小生成树的prim方法,赶紧写下来,省得过后忘了。


Prim算法】:


就拿这个图举例子,假设从V0开始走。

1. 从起点V0开始,我们的分支只有V0,那就看跟V0连接的线,权值都多少。选个最少的,没错,是10,也就是(V0->V1)。


2. 将这个边纳入最小生成树,现在手里有V0和V1两个顶点,再看跟V0和V1连接的线,权值都多少,再选个最少的。这里注意,V0有两个分支,刚才选中了一个权值小的分支

(V0->V1,而剩下的那个分支则参与第二轮选路径,即第二轮选路径的备选边有:(V1->V2)、(V1->V8)、(V1->V6)、(V0->V5)。选个最少的,没错,是11,也就是(V0->V5)。


3. 现在我们有V0、V1、V5三个顶点了。开始第三轮选路径,这轮备选边有:(V1->V2)、(V1->V8)、(V1->V6)、(V5->V6)、(V5->V4)。选个最少的,没错,是12,也就是(V1->V8)。

4. 后面就是按这样,一轮一轮的找路就妥了。


算法思路就是每轮选路径的备选边,都是由连接已遍历过的顶点的边中,未被选到最小生成树中的其它边组成的。也就是一个顶点即使被遍历过,他的未被选进最小生成树中的其它边也继续参与每轮最小权值路径的选择。


下面是Prim算法的实现定义:






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值