1.概述
视频地址:克鲁斯卡尔算法
下面看一个场景和问题
- 某城市新增7个站 点(A,B,C,D,E,F,G),现在需要修路把7个站点连通
- 各个站点的距离用边线表示(权),比如A-B距离12公里
- 问:如何修路保证各个站点都能连通,并且总的修建公路总里程最短?
2.克鲁斯卡尔算法介绍
- 克鲁斯卡尔(Kruskal)算法, 是用来求加权连通图的最小生成树的算法。
- 基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路(
n个定点,只需要n-1条边就能联通所有的节点
) - 具体做法:首先构造一 个只含n个顶点的森林,然后依权值从小到大从连通网中选