【数据结构】最小生成树 之 普利姆算法

本文介绍了最小生成树的概念及其在连通网络中的应用,重点讲解了普利姆算法的逻辑思路和实现方法,包括加点法的详细步骤,以及在邻接矩阵存储结构下的具体实现策略。

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

基本概念

假设要在n个城市之间建立通信联络网,则连通n个城市只需要n-1条线路。这时,自然会考虑如何在最省经费的前提下完成任务。

在一个连通网的所有生成树中,各边的代价之和最小的那棵生成树称为该连通网的最小生成树

MST性质:最小生成树中必定存在一条具有最小权值的边。普利姆(Prim)算法克鲁斯卡尔(Kruskal)算法是两个利用MST性质构成最小生成树的算法。

普利姆算法的核心思想是归并点,时间复杂度为O(n²),适用于稠密网;

克鲁斯卡尔算法的核心思想是归并边,时间复杂度为O(elog2e),使用与稀疏网。

 

普利姆算法(加点法)

<逻辑思路>

(1)设所有顶点保存在集合V中,已被归并的点保存在集合U中,则未被归并的点保存在集合V-U中;

(2)在图中任意找一个起始顶点v1,v1归入U,离开V-U;

(3)顶点v1存在v2,v3,v4三个邻接顶点,找出权值最小的边(v1,v3);

(4)顶点v3归入U,离开V-U;

(5)顶点v1剩余邻接顶点v2,v4,顶点v3有邻接顶点v2,v4,v5,v6;

(6)比较(v1,v2)和(v3,v2),得出权值更小边(v3,v2);比较(v1,v4)和(v3,v4),两边权值相同;

*在逻辑思路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值