《经典图论算法》克鲁斯卡尔算法(Kruskal)

科技   2024-10-22 19:00   上海  

摘要:

1,克鲁斯卡尔算法的介绍

2,克鲁斯卡尔算法的实现



1,克鲁斯卡尔算法的介绍

克鲁斯卡尔(Kruskal)算法和我们前面讲的《普里姆(Prim)算法》一样,也是求最小生成树的,它们使用的都是贪心的策略。不同的地方在于Prim算法是选择点,而Kruskal算法是选择边。


Kruskal算法的实现原理比较简单,首先要对图中的所有边进行排序,然后每次选择权值最小的边,但要保证选的边不能构成环路,一直选择下去,直到不能选择为止。所以Kruskal算法更适合计算稀疏图的最小生成树。


判断能不能构成环路我们可以使用《并查集》,就是判断边的两个点是否在同一个连通分量,如果在同一个连通分量,这条边就不能选,否则可以选,如图下图所示。

数据结构和算法
王一博,《算法秘籍》作者,1000多页的pdf算法题我也已经整理完成,在公众号“数据结构和算法”中回复关键字“pdf”即可下载。
 最新文章