【数据结构】最小生成树 之 克鲁斯卡尔算法

本文介绍了最小生成树的概念,探讨了在通信联络网建设中如何节省成本。重点讲解了克鲁斯卡尔算法,这是一种通过归并边来构建最小生成树的方法,适合于稀疏图。算法包括将顶点拆分为连通分量,按边权重排序,通过判断边连接的顶点是否在同一个连通分量中避免形成回路,直到所有顶点归并为一个连通分量。
摘要由CSDN通过智能技术生成

基本概念

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

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

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

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

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

 

克鲁斯卡尔算法(加边法)

如果说普利姆算法是“加点法”,那么克鲁斯卡尔算法就是“加边法”。

<逻辑思路>

(1)将由n个顶点组成的连通图拆分成n个连通分量,即每个顶点为一个连通分量;

(2)将图上的所有边按权值排序;

(3)从最小边开始操作,归并边判断条件是下一条被选边不能使连通分量形成回路,即被选边的两个顶点h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值