Minimum cost spanning tree 最小生成树
最小生成树:
定义:给定一个无向图,如何选取一颗生成树,使树上所有边上权的总和为最小
N个顶点,最少有N-1条边
包含全部顶点
N-1条边都在图中
普利姆和克鲁斯卡算法
prim 普利姆算法
是个最小生成树算法,计算包含n个顶点的连通图里的最小路径(找出n-1条边包含所有n个顶点的连通子图)
具体思路:
1 | 1. 从 <A> 顶点开始处理 -> <A,D> <A,D> |
代码实现:
1 | public class PrimAlgorithm { |
kruskal 克鲁斯卡算法
求加权连通图的最小生成树算法。思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路。做法:构成一颗含n个顶点的森林,然后权值从小到大从连通图中选择边加入到森林中,并使森林不构成回路,直到森林变成一棵树。
图片:
具体思路:
1 | 筛选出所有边权值(11条边) |
- 本文作者: MISAKIGA
- 本文链接: https://misakiga.github.io/2020/05/13/algor/MST最小生成树算法/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
