目录
最小生成树
什么是最小生成树
首先,什么是生成树呢?
简单来说,从一个图生成一棵树。
对于图而言,生成树===极小连通子图
基本特点(限于考试):
一个连通图可以有多个生成树;
连通图的所有生成树,其顶点个数和边的个数一致;
生成树不成环;
对于n个顶点的无向图,醉倒包含n的n-2次方棵生成树;
n个顶点的生成树,最多n个顶点n-1条边;
其次,什么是最小呢?
最小===权值和最小
所以,最小生成树针对于带权图。
应用场景:城市之间的距离,花费;铺设网络;密码学纠错码;人脸识别;人工智能(聚类);
处理最小生成树
克鲁斯卡尔(贪心、贪婪)
先把权值从小到大排序
从所有的边当中选择符合最小生成树条件(权值最小+生成树)的边。
权值最小已经满足(已经排好了)。
如何判断生成树-->不成环(边是否纳入)+顶点个数与边的个数一致(是否完整、找全)
克鲁斯卡尔逻辑d
成环如何实现?
添加一条边(x,y),判断x和y的终点是否一致。
顶点的终点就是连通的最大顶点
k实现
普里姆
针对于图的顶点
从一个顶点出发,找权值最小的边
普里姆
拓扑排序(打辅助---给后面的算法)
基础概念
1.有向无环图
2.活动->工程图
3.AOV网->用顶点表示活动,用弧表示活动之间的优先级关系的有向图
4.拓扑排序 表示活动之间关系的序列
思路:在有向图中选择一个没有前驱的结点且输出
可以判断一个有向是否成环
拓扑序列