图论总结——最小生成树算法:prim算法、kruskal算法

什么是最小生成树?

一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。

因此,只有连通图才存在最小生成树,因为所有顶点都可达,如果是非连通图,一定不存在最小生成树。

求最短路径时的图一般是有向图
求最小生成树时的图一般是无向图

最小生成树的应用

例如要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光缆的总费用最低。

这就需要找到带权的最小生成树。

算法实现

  1. prim算法
  2. kruskal算法

猜你喜欢

转载自blog.csdn.net/HangHug_L/article/details/114086620