大二上 数据结构与算法 最小生成树算法 20241206
1.Prim算法原理:
1)以某一个点开始,寻找当前该点可以访问的所有的边;
2)在已经寻找的边中发现最小边,这个边必须有一个点还没有访问过,将还没有访问的点加入我们的集合,记录添加的边;
3)寻找当前集合可以访问的所有边,重复2的过程,直到没有新的点可以加入;
4)此时由所有边构成的树即为最小生成树。
2.boruvka算法
Boruvka 算法是用于解决完全图的生成树的一类算法,因为完全图边数很多,因此普通时间复杂度基于边数的做法不适用。Boruvka 算法核心思想是:所有当前的连通块向其他连通块拓展出最小边,直到整张图只剩下一个连通块。
那么这个算法的核心部分非常简单,下面给出伪代码:
while 连通块个数 > 1 :
for 连通块 i :
mi[i] = i 和 其他连通块连边的最小值
for 连通块 i :
if mi[i] 连接的不是同一个连通块 :
ans += mi[i]
合并两个连通块,连通块个数减 1

浙公网安备 33010602011771号