![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最小生成树
qiuxinfa123
这个作者很懒,什么都没留下…
展开
-
最小生成树Kruskal算法实现(Java)
Kruskal算法,通过收集边的方式来形成最小生成树,一开始将每个顶点看成一颗树,那么形成最小生成树就是是森林合并为树的一个过程,每次都选择一条权重最小的边,同样也是贪心算法的体现,但是要避免形成环。这里就提出了两个问题:(1)如何保证每次选择的边的权重都是最小的?(2)如何判断待收集的边,是否会与已经收集的边形成环?对于问题(1):有两种方法,一种是对边的权重进行从小到大的排序,另外一种则是使用最小堆来实现(效率更好)针对问题(2):可以通过并查集来判断...原创 2020-07-22 21:51:51 · 3725 阅读 · 0 评论 -
Prim算法实现最小生成树(Java)
最小生成树包含n个顶点和(n-1)条边,并且边的权重最小。Prim算法的思想是:由一颗小树慢慢长大,首先分为两个顶点集合,最小生成树的顶点集合A,和不在生成树中的顶点集合B,每次从B中找一个顶点v,使其到A中的某个顶点的权重最小,并将v放入A,同时从B删除。以下图为例(图中的数字即为权重),进行简单的说明:步骤如下(以v1为起点):(1)一开始,集合A只有顶点v1,剩下的顶点在集合B中,即A={v1}、B={v2,v3,v4,v5,v6,v7}(2)从B中找一个顶点v...原创 2020-07-22 20:56:06 · 1022 阅读 · 0 评论