Kruskal算法,又称作为加边法,是配合并查集实现的。

图示:

如图,这是一个带权值无向图我们要求它的最小生成树。
图论之最小生成树之Kruskal算法


首先,我们发现在1的所有边上,连到3的边的边权值最小,所以加上这条边。
图论之最小生成树之Kruskal算法


然后在3上,连到4的边权值最小,加上这条边。
图论之最小生成树之Kruskal算法


最后,4连到2的边是最小的,加上这条边。

现在,所有点都连通了,所以这个图的最小生成树就是2+2+1=5

图论之最小生成树之Kruskal算法


从上述操作中可以看出,Kruskal算法是需要贪心的思想的。

那怎么来实现这个贪心呢?

简单,一个sort足矣!


所以这整个Kruskal算法的思路是:

1.初始化
2.排序
3.for循环遍历所有边,如果两个图没有连通(get(x)!=get(y)),就给它加上边,cnt再加上这条边的边权值。

例题及讲解

END

相关文章:

  • 2021-05-01
  • 2021-11-19
  • 2021-12-04
  • 2022-01-22
  • 2021-07-20
  • 2022-12-23
猜你喜欢
  • 2021-05-24
  • 2021-09-09
  • 2022-12-23
  • 2021-05-15
  • 2021-07-07
相关资源
相似解决方案