Prim算法小结

本文总结了Prim算法的实现原理,首先介绍了算法的官方定义,接着以简单的步骤解释了算法过程,强调了从一个起始点开始,通过不断寻找最小代价边来构建最小生成树。最后,提供了C++代码实现作为算法的实践展示。
摘要由CSDN通过智能技术生成

Prim算法的实现定义

为了防止我说不清,先贴一下官方解释,引自《大话数据结构》:

假设N = (P, {E})是连通图,TE是N上最小生成树中边的集合。算法从U = {u0}(u0∈V),TE = {}开始。重复执行下述操作:在所有u∈U, v∈V - U的边(u, v)∈E中找一条代价最小的边(u0, v0)并入集合TE,同时v0并入U,直到U = V为止。此时TE中必有n - 1条边,则T = (V, {TE})N 的最小生成树。

记录一下我的理解

简单来讲

  • 1、我们可以随意假定一个起始点v0,遍历图中所有的顶点并记录与v0的距离(无边/弧的记为无穷大即可),在这些距离中找到最小的一条边/弧,该边的另一个顶点记为vk,将该顶点加入最小生成树的顶点集中;
  • 2、现在以vk点为边的起点,遍历整个图的(除已在最小生成树顶点集的点外)顶点,并与之前存储的距离比较,取小的距离值更新,最后再次找其中最小的距离值,记录另一个顶点vk‘,并加入到最小生成树的顶点集中;
  • 3、重复,直到最小生成树的顶点集涵盖所有顶点。

在程序中,我们可以用adjvex[i]表示第i个顶点在当前距离

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ThetaQing

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

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

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

打赏作者

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

抵扣说明:

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

余额充值