解决最小生成树MST的两个算法

最小生成树:在N个顶点的图中选择N-1条边构成一个极小连通子图,使该极小连通子图的所有边权之和最小,称其为该图的最小生成树。求解图的最小生成树算法有常用的两个。Prim算法:普林算法是依赖点的算法,从点的方面去考虑构成一颗最小生成树,基本思想是:假设有图G,顶点集合U,先从U中任意选出一点进入集合V。再从U-V中选出一点使其到V中任意一点的权值最小,将该点也加入到V;继续依此重复从U-V中...
摘要由CSDN通过智能技术生成

最小生成树:在N个顶点的图中选择N-1条边构成一个极小连通子图,使该极小连通子图的所有边权之和最小,称其为该图的最小生成树。求解图的最小生成树算法有常用的两个。

Prim算法

普林算法是依赖点的算法,从点的方面去考虑构成一颗最小生成树,基本思想是:假设有图G,顶点集合U,先从U中任意选出一点进入集合V。再从U-V中选出一点使其到V中任意一点的权值最小,将该点也加入到V;继续依此重复从U-V中挑选点进入集合V中直至N个点全部完毕,此时构建出了具有N-1条边图的MST。如果N个点中有无法标记的点,那说明无法形成最小生成树。

Kruskal算法:

克鲁斯科尔算法是依赖于边的算法,按图中边权值从小到大进行排序,如果选择该边后不形成回路则保留这一条边,形成回路则删除该边,依次选择够n-1条边则完成改图的MST。判断是否形成回路的方式是维护一个并查集,将由边关联的点都放入并查集内,祖先相同证明它们都直接或间接的于同一点相连会形成回路,祖先不同则不会形成回路。如果被选择的边无法到达n-1条,那么说明无法形成最小生成树。

区别:

prim算法适用于点密集的情形,时间复杂度为O(N^2),适用于稠密图,而通过实现知道kruskal只需通过对e条边一次排序,其时间复杂度为O(eloge)

 

 

Eddy's picture

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 12076    Accepted Submission(s): 6063

Problem Description

Eddy begins to like painting pictures recently ,he is sure of himself to become a painter.Every day Eddy draws pictures in his small room, and he usually puts out his newest pictures to let his friends appreciate. but the result it can be imagined, the friends are not interested in his picture.Eddy feels very puzzled,in order to change all friends 's v

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值