最小生成树
文章平均质量分 80
L_Hygen
这个作者很懒,什么都没留下…
展开
-
C++数据结构与算法分析——Kruskal算法
Kruskal算法 介绍 Kruskal算法也是基于贪心算法证得的。虽然Kruskal算法与Prim算法都是求最小生成树的算法,但是它们的操作不太一样。Prim算法是先找到一个点作为一个集合,找到离它最近的点,将它加入集合。而Kruskal则是将所有边的边权从小到大排序,然后遍历所有边,如果两个点不在同一集合内,则将两个点加入到同一集合,如果两个点已经遍历过,则不操作。最后如果集合内的边数为n - 1则说明生成了最小生成树,否则没有。 说明 如何将两个点加入到同一集合呢?在并查集中已经说过了,并查集可以完成原创 2021-09-15 09:38:08 · 294 阅读 · 0 评论 -
C++数据结构与算法分析——Prim算法
Prim算法 介绍 最小生成树 最小生成树是指在一个无向图连通中求得连通所有点的一条路径,且这条路径的所有边的权值之和最小,此时无向图的这个子图便称为最小生成树 Prim算法 prim算法是图论中用来求最小生成树的算法,与Dijkstra最短路算法求每个点到起点的最短距离不同,prim算法需要求的是每个点到最小生成树的这个集合的最小距离 步骤 初始化所有点到最小生成树的距离为∞(0x3f3f3f3f) 进行n次迭代,每次求出集合外距离最小生成树最短的点,加入最小生成树集合 求出距离集合距离最短的点t,若它原创 2021-09-09 00:12:03 · 558 阅读 · 0 评论