Kruskal算法
在离散数学中接触到图论,学到了最小生成树算法,图
G
G
G的生成树中其权之和为最小的生成树叫做最小生成树。
而且了解到一个寻找最小生成树的算法:
K
r
u
s
k
a
l
Kruskal
Kruskal算法,中文叫做克鲁斯克尔算法。下面是该算法的原理:
- 在连通 ( n , m ) (n,m) (n,m)图 G G G中将所有 m m m个边按权值大小,从小到大顺序放入专用表内,此时 G G G中只剩下 n n n个结点,选最小权的边 e 1 e_1 e1至 G G G,令 i = 1 i=1 i=1;
- 当 i = n − 1 i=n-1 i=n−1时结束,否则转(3);
- 已选 e 1 , e 2 , ⋯ , e i e_1,e_2,\cdots,e_i e1,e2,⋯,ei,此时选 e i + 1 e_{i+1} ei+1为剩余边中权最小者且加入 G G G后不构成回路;
- 置 i = i + 1 i=i+1 i=i+1,转(2);
一个连通图 G G G的生成树时不唯一的。