《算法导论》笔记 第23章 23.2 Kruskal 算法和 Prim 算法

本文介绍了两种经典的最小生成树算法:Kruskal算法和Prim算法。Kruskal算法通过选择森林中连接不同树的最小权值边来逐步构建最小生成树,时间复杂度为O(ElgV)。Prim算法则通过迭代地将连接树与非树顶点间的最轻边加入树中,使用二叉堆实现的时间复杂度为O(ElgV),使用斐波那契堆的时间复杂度更优,为O(E+VlgV)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【笔记】


Kruskal 算法

找出森林中连接任意两棵树的所有边中,具有最小权值的边(u,v)作为安全边,并把它添加到正在生长的森林中。

O(ElgV)


Prim 算法

在每一步,一条连接了树A与G_A=(V,A)中某孤立顶点的轻边被加入到树A中。

二叉堆 O(ElgV)

斐波那契堆 O(E+VlgV)


【练习】


23.2-1 对同一输入图G,Kruskal算法可能得出不同的生成树。


23.2-2 假定图G=(V,E)用邻接矩阵表示,给出Prim运行时间为O(V^2)的实现。


23.2-3


23.2-4


23.2-5


*23.2-6


*23.2-7


23.2-8



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值