Boruvka 生成树算法
Posted graytido
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]的求解会用其他方式辅助求解,在对于给出一种计算两点之间边权的方式的题目下相当好用
以上是关于Boruvka 生成树算法的主要内容,如果未能解决你的问题,请参考以下文章
克鲁斯卡尔算法(Kruskal算法)(最小生成树算法)-贪心