最小生成树(总结+例题)

何谓最小生成树

对于一个带权连通无向图G中的不同生成树,各棵树的边上的权值之和可能不同,边上的权值之和最小的树称之为该图得最小生成树

一、概念 
生成树:一个连通图的生成树,指的是该图的一个子图,它包含图的所有顶点(N个),但只有足够把所有顶点连接在一起的N-1条边。 如果再向其中添加一条边,那么必定会有环形成。 
最小生成树:一个连通图的所有生成树中,所有边的权值加起来最小的生成树,称为最小生成树。

二、实际应用 
学一种结构或者一种算法,我时常会考虑它跟实际生活中的哪些方面有联系, 是否可以运用到实际生活呢。而不只是知道可以作为题目的解法。 
最小生成树在实际中可以用于通信网络铺设的计算,城市间道路的计算,我所查到的资料一般都是考虑费用为主。即运用最小生成树知识,考虑如何建设才能最节省费用并且可以投入实用
三,算法

1.普里姆算法—Prim算法
算法思路: 
首先就是从图中的一个起点a开始,把a加入U集合,然后,寻找从与a有关联的边中,权重最小的那条边并且该边的终点b在顶点集合:(V-U)中,我们也把b加入到集合U中,并且输出边(a,b)的信息,这样我们的集合U就有:{a,b},然后,我们寻找与a关联和b关联的边中,权重最小的那条边并且该边的终点在集合:(V-U)中,我们把c加入到集合U中,并且输出对应的那条边的信息,这样我们的集合U就有:{a,b,c}这三个元素了,一次类推,直到所有顶点都加入到了集合U。

https://blog.csdn.net/red_red_red/article/details/84995803

2.克鲁斯卡算法

算法思路: 
(1)将图中的所有边都去掉。 
(2)将边按权值从小到大的顺序添加到图中,保证添加的过程中不会形成环 
(3)重复上一步直到连接所有顶点,此时就生成了最小生成树。这是一种贪心策略。

最小花费问题

畅通工程——最短长度

你可能感兴趣的:(小翟的算法笔记,最小生成树)