软件设计师学习笔记——数据结构——生成树
欢迎大家去作者本人的B站的频道,观看相同的内容
https://www.bilibili.com/read/cv17014016
对于有N个定点的连通图,至少有n-1条边,而生成树中有n-1条边,所以连通图的生成树是该图的极小连通子图。
图的最小生成树的算法有两种:Prim , Kruskal。
Prim(普里姆):就是将定点分为两种,一种是以选定点集合,另一种是未选定点集合。下面是程序运行步骤:
1.存放一个点在以选定点集合
2.在以选定点集合和未选定点集合之间所连接的权值比较,比较最小的
3.此时,这个权值所在边,以及连接的点,成为最小生成树的部分。这个点添加到以选定点集合。
4.循环2-4
5.直到边数为n-1条时,最小生成树完成。
Kruskal(克鲁斯卡尔):就是将每一条边的权值由小到大排列,然后由小到大,一条一条添加,直到产生回路的时候,就跳过这个边的添加,执行下一条边的添加,直到已经添加N-1条边的时候,最小生成树完成。
这里使用文字时很难进行说明的,需要动画的形式表达
这里十分推荐去 BV1Eb41177d1 这个视频简单易懂。
当然作者现在不会manim,所以只能使用别人好的视频,于是这里声明一下,这个是WAY_zhong所制作的视频,这个视频通俗易懂,适合大家观看。
欢迎大家去作者本人的B站的频道,观看相同的内容,拜托了,增加浏览量一下
https://www.bilibili.com/read/cv17014016