贪心算法 - Prim算法

Prim算法是一种贪心策略,从一个根节点开始逐步构建最小生成树。每次选择与当前树有最小权重边的邻接点加入树中,避免形成回路。在给定图示例中,以V1为起点的最小生成树构建顺序为V1-V4-V2-V3-V7-V6-V5。算法中,节点距离初始化,通过更新邻接点距离并存储父节点信息来构建树。当顶点个数未达到总数时,表明图不连通,最小生成树不存在。

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

基本思路为从一颗根节点开始让一颗小树慢慢长大 .从根节点开始,每次找一个与当前树有直接边的邻接点,每次找一个最小权重的边,将其边和点收入到树内,树就长大了,然后继续往外长这颗树.反复循环. 以上图的情况来看以V1为起点最小生成树的生成顺序为:

V1(V4最近只有1)   -  V4(此时树为V1+V4找与他们最近的边)   -   V2(V3,V2顺序无所谓先后)     -    V3(V3,V2顺序无所谓先后)  - V7(此时因为不能有回路,则V2-V4,V3-V1,V6-V7与树不直接相连,不计入。因此V7最小)-V6-V5 

 

 

 如果V和S(初始点)有直接的边则V的距离为S-V的权重,否则为正无穷,跟dijkstra一样。

 

 设树的根节点为-1.通过节点内存储父节点达

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值