Prim算法解决最小生成树 (解决修路问题)

Prim算法是一种基于贪心思想解决最小生成树问题的方法。它将所有顶点分为已访问和未访问两类,每次都从未访问顶点中选择与已访问顶点相连的最小权值边,直到所有顶点都被包含在内。通过示例展示了如何在连接7个村庄的图中应用Prim算法,确保村庄间最短连接路径。
摘要由CSDN通过智能技术生成

一.什么是Prim算法

       普里姆算法查找最小生成树的过程,采用了贪心算法的思想。对于包含 N 个顶点的连通网,普里姆算法每次从连通网中找出一个权值最小的边,这样的操作重复 N-1 次,由 N-1 条权值最小的边组成的生成树就是最小生成树。

 二.Prim实现的思路

  1. 将连通网中的所有顶点分为两类(假设为 A 类(结点已访问)和 B 类(结点未访问)。  初  始状态下,所有顶点位于 B 类;  
  2. 选择任意一个顶点,将其从 B 类移动到 A 类;  (把这个结点标志为访问了)
  3. 从 B 类的所有顶点出发,找出一条连接着 A 类中的某个顶点且权值最小的边,将此边连接着的 A 类中的顶点移动到 B 类(双重循环 ,找出访问节点和未访问结点之间最小的边)
  4. 重复执行第 3  步,直至 B 类中的所有顶点全部移动到 A 类,恰好可以找到 N-1 条边。     (循环实现 构成N-1次)

假如从顶点A出发,顶点 B、C、D 到顶点 A 的权值分别为 2、4、2,所以,对于顶点 A 来说,顶点 B 和顶点 D 到 A 的权值最小,假设先找到的顶点 B:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小晴晴呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值