最小生成树Prim和Kruskal算法

本文探讨了Prim算法和Kruskal算法,前者适用于稠密图,通过不断加入最近节点构建最小生成树,时间复杂度为O(V^2);后者针对稀疏图,按边长排序并检测环结构,时间复杂度为O(E*logE),通过并查集判断边的连接关系。
摘要由CSDN通过智能技术生成

两种算法都是基于贪心的方法。
Prim算法:
适用于稠密图。时间复杂度为O(V^2)。(V为顶点数)
与Dijkstra算法相似,每次选择离离原点最近的点,加入到现有的生成树中。

Kruskal算法:
适用于稀疏图。时间复杂度为O(E*logE)。(E为边数)
将边按照长度由小到大进行排序(边的结构体内要存入连接的两个顶点的信息),每次选择最短的一条边出来,在确认加入新边不会形成环后,将其加入生成树中。如何判断是否会形成环的方法是,建立一个关于边的并查集,加入新边时判断边连接的两个端点是否在同一个集合中。若是,则加入新边,随后将其加入到新边,将边连接的两个端点实施并查集union操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值