如何理解与实现最小生成树呢?Prim算法与Kruskal算法背后的思想又是怎么样的呢?一起来探索吧~
文章目录:
- 1.概念和性质
- 2.思路探索
- 3.Kruskal算法
- 4.Prim算法
- 5.代码实现
1.概念和性质
今天我们考虑的模型是加权无向图
,问题是如何获取它的一幅最小生成树!首先,我们给出最小生成树的定义:
图的生成树是它的一棵含有其所有顶点的无环连通子图。一幅加权图的最小生成树(MST)是它的一棵权值(树中所有边的权值之和)最小的生成树。
如图所示:
首先,我们给出一些约定来简化问题(这并不会影响我们理解问题)
- 只考虑连通图(如果不连通的话是不存在最小生成树的)
- 边的权重可能是0或者负数
- 所有边的权重各不相同(我们给出这个假设之后对于一幅图来说只存在唯一的最小生成树,这样方便我们理解,但是如果把这个限制条件去掉,我们之前得到的算法依然有效
标签:Prim,Kruskal,最小,生成,算法,顶点,横切,我们
来源: https://blog.csdn.net/chaotalk/article/details/115428292