最小生成树(超级重要)、拓扑排序 逻辑梳理 动画演示

目录

最小生成树

首先,什么是生成树呢?

其次,什么是最小呢?

处理最小生成树

克鲁斯卡尔(贪心、贪婪)

普里姆

拓扑排序(打辅助---给后面的算法)

代码


最小生成树

什么是最小生成树

首先,什么是生成树呢?

简单来说,从一个图生成一棵树。

对于图而言,生成树===极小连通子图

基本特点(限于考试):

一个连通图可以有多个生成树;

连通图的所有生成树,其顶点个数和边的个数一致;

生成树不成环;

对于n个顶点的无向图,醉倒包含n的n-2次方棵生成树;

n个顶点的生成树,最多n个顶点n-1条边;

其次,什么是最小呢?

最小===权值和最小

所以,最小生成树针对于带权图。

应用场景:城市之间的距离,花费;铺设网络;密码学纠错码;人脸识别;人工智能(聚类);

处理最小生成树

克鲁斯卡尔(贪心、贪婪)

先把权值从小到大排序

 从所有的边当中选择符合最小生成树条件(权值最小+生成树)的边。

权值最小已经满足(已经排好了)。

如何判断生成树-->不成环(边是否纳入)+顶点个数与边的个数一致(是否完整、找全)

克鲁斯卡尔逻辑d

成环如何实现?

添加一条边(x,y),判断x和y的终点是否一致。

顶点的终点就是连通的最大顶点

k实现 

普里姆

针对于图的顶点

从一个顶点出发,找权值最小的边

普里姆

拓扑排序(打辅助---给后面的算法)

基础概念

1.有向无环图

2.活动->工程图

3.AOV网->用顶点表示活动,用弧表示活动之间的优先级关系的有向图

4.拓扑排序  表示活动之间关系的序列

思路:在有向图中选择一个没有前驱的结点且输出

可以判断一个有向是否成环

拓扑序列

代码

http://t.csdn.cn/LgCdwicon-default.png?t=N2N8http://t.csdn.cn/LgCdw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

amojiacoco

请我杯饮料吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值