最小生成树算法 | Kruskal’s Minimum Spanning Tree Algorithm

本文介绍了最小生成树的概念,特别是Kruskal's算法的工作原理。这个算法按照边的权重非递减排序,并使用Union-Find避免循环,构建连通图的最小权重生成树。文章还讨论了算法的时间复杂度为O(ElogE)或O(ElogV),并提供了不同编程语言的代码实现。
摘要由CSDN通过智能技术生成

在我们开始讲解算法之前,大家需要先了解下面几个考试和面试中都经常出现的概念,

 

什么是生成树?

生成树是连通图的子集,其中所有边都是连接的,即可以从任一边遍历到任何边,中间有或没有中间节点。此外,生成树中不得有任何循环。因此我们可以说,如果一个连通图中有N 个顶点,那么生成树可能具有的边数为N-1 

什么是最小生成树? 

给定一个连通无向图,该图的生成树将是它的一个子图,也就是一棵将所有顶点连接在一起的树。一个图可以有许多不同的生成树。有权重的、连通的、无向的图的最小生成树 (MST) 或最小权重生成树是权重小于或等于所有其他生成树的权重的生成树。生成树的权重是生成树的每条边的权重之和。

最小生成树有多少条边? 

最小生成树具有 (V – 1) 条边,其中V是给定图中的顶点数。 


明白了上面的几个问题,我们就可以正式开始研究 Kruskal’s Minimum Spanning Tree Algorithm 了!

首先 Kruskal’s Minimum Spanning Tree Algorithm 具体是怎么工作的呢?

  1. 按权重的非递减顺序对所有边进行排序。 
  2. 选择最小的边。检查它是否与到目前为止形成的生成树形成一个循环。如果没有形成循环,则包括该边。否则,丢弃它。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值