Loading

Boruvka 生成树算法

Boruvka 生成树算法

Boruvka 算法的一句话思想便是:

“从所有当前的连通块向其他连通块扩展出最小边,直到只剩一个连通块”,其中取最小边的贪心思想是 Kruskal 的主体,而向外扩展又是 Prim 的思想 —— 基于另外两种生成树算法,Boruvka 的正确性显然。

代码框架:

while 连通块个数>1
    for 每个连通块 i
        val[i] = 连接 i 与其他连通块的最小边
    for 每个连通块 i
        if val[i] 连接两个不同的连通块
            ans += val[i]
            Merge( val[i] 连接的连通块 )
            连通块个数 --

就是val[i]的求解会用其他方式辅助求解,在对于给出一种计算两点之间边权的方式的题目下相当好用

posted @ 2020-07-25 20:34  GrayKido  阅读(249)  评论(0编辑  收藏  举报