-
最小生成树-Kruskal(克鲁斯卡尔)算法
-
简述生成树:
生成树:
给定一个无向图(顶点间连线不带方向),如果它任意两个顶点都联通并且是一棵树,那么我们就称之为生成树(Spanning Tree)
最小生成树:
如果是带权值的无向图,那么权值之和最小的生成树,我们就称之为最小生成树(MST, Minimum Spanning Tree)
应用:
最小生成树广泛应用于城市间道路建设的优化,通信网络最优铺设等,将网络站点或者城市看成无向图中的顶点,把每条道路、网线的成本作为权值,从而计算出建设的最小成本
-
MST实现算法-Kruskal
算法思想:
Kruskal 是基于贪心的最小生成树实现算法,通过将所有边的权值排序,按从小到大的顺序取出,如果边的端点不属于同一个集合(未联通,该道路需要建设),那么将这两个端点所属的两个集合合