目录
1.4构造最小生成树方法一:Prim(普里姆)算法(利用了MST性质)
1.4构造最小生成树方法二:Kruskal(克鲁斯卡尔)算法(利用了MST性质)
图的应用
1、最小生成树
1.1回顾生成数的概念
生成树的概念:
生成树要包含所有的顶点,那我们就可以对这个图进行遍历去访问它所有的顶点,遍历有深度优先与广度优先,在访问的过程中把访问的那些边加到生成树上。
例如:
1.2 最小生成树的概念与典型应用
最小生成树的概念
最小生成树的典型用途
1.3怎么找到无向网的最小生成树(利用MST性质)
1.4构造最小生成树方法一:Prim(普里姆)算法(利用了MST性质)
U是放在生成树的顶点,先在U中放入第一个顶点,V-U是指剩余的未加入最小生成树的顶点,然后再找U中所有顶点相关联的所有边中权值最小的顶点,且不能再U内存在过的,
1.4构造最小生成树方法二:Kruskal(克鲁斯卡尔)算法(利用了MST性质)
克鲁斯卡尔算法需要所有的顶点先列出来,然后再所有的顶点之间找权值最小的边,如果形成了闭合回路(环),则舍弃这条边,再取权值(代价)最小的边。
MST也有点贪心算法的思想。
1.5两种构造最小生成树算法的比较
2.最短路径
最短路径是有向图,最小生成树是无向图
2.1最短路径的定义
2.2最短路径的典型应用
2.3(Dijkstra)迪杰斯特拉算法求单源最短路径
有一些点像prim算法,但不全像,都是用S先存入起始顶点,T保存剩余的其他顶点,例如此时S中有起始顶点v0,找从v0到其他所有能直达顶点的距离,如果不能直达记为无穷大,选一个权值最小的顶点,加入到S中,例如上图找到的最小直达顶点为v2,此时再找加入v2后v2直达的顶点路径与v0直达的路径权值比较大小,记录权值较小的,v2从T中也就是剩余的定点中与上一次比较直达的顶点权值,再次记录最小的,直到加入S的数目等于所有的顶点为止。
2.4(Floyd)弗洛伊德算法求所有顶点之间的最短路径![](https://img-blog.csdnimg.cn/259f848c19ae4f7e8048c46433b39e1d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m6Iux6K-t55qE5bC85YWL,size_20,color_FFFFFF,t_70,g_se,x_16)
3.拓扑排序
3.1前提知识:有向无环图![](https://img-blog.csdnimg.cn/c34172f91a8746de8d84c0199fa84651.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m6Iux6K-t55qE5bC85YWL,size_20,color_FFFFFF,t_70,g_se,x_16)
3.2 AOV网与AOE网的概念
3.3有向无环图进行拓扑排序(AOV网)![](https://img-blog.csdnimg.cn/65b1a19dafed48e8a8a56a7445eaf755.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m6Iux6K-t55qE5bC85YWL,size_20,color_FFFFFF,t_70,g_se,x_16)
每次全都找没有前驱节点的顶点,且顺序无关,所以拓扑排序不唯一
3.4拓扑排序的一个重要应用![](https://img-blog.csdnimg.cn/5c429531439e404b8e7e7abb0ee3a617.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m6Iux6K-t55qE5bC85YWL,size_20,color_FFFFFF,t_70,g_se,x_16)
4.关键路径
4.1关键路径用AOE网来表示
4.2关键路径的例题
4.3 未完待续,会持续更新关键路径的思路