数据结构:最短路径算法.ppt
《数据结构:最短路径算法.ppt》由会员分享,可在线阅读,更多相关《数据结构:最短路径算法.ppt(29页珍藏版)》请在三一办公上搜索。
1、1,2023/10/21,图算法(二),最短路经Shortest Path,青岛理工大学acm,2023/10/21,2,Dijkstra算法练习题链接http:/,2023/10/21,3,这个链接是Dijskra算法的动态演示,2023/10/21,4,问题:,两地之间是否有通路?若存在多条通路,哪条路最短?,最短路径问题,2023/10/21,5,单源最短路径 Single-Source Shortest Path(Dijkstra算法),所有顶点对间的最短路径问题 All-Pairs Shortest paths(Floyd算法),最短路径问题,2023/10/21,6,单源最短路径
2、Single-Source Shortest Path,问题:带权有向图G(E,V),找出从给定源顶点s到其它顶点v的权最小路径。“最短路径”=最小权 路径的权是路径上所有边的权之和。例:道路图:从青岛理工到金沙滩的最短路径?,2023/10/21,7,v5,v4,v0,100,5,60,10,10,v1,v2,v3,20,50,30,图中从v0到其余各顶点之间的最短路径:v0到 v1 无 v0到 v2(v0,v2)10 v0到 v3(v0,v4,v3)50 v0到 v4(v0,v4)30 v0到 v5(v0,v4,v3,v5)60,单源最短路径,2023/10/21,8,贪心算法:若顶点序列
3、V0,V1,Vn 是从V0到Vn的最短路,则序列 V0,V1,Vn-1 必为从V0到Vn-1的最短路。,权非负的单源最短路径算法(Dijkstra),2023/10/21,9,基本思想:将图中所有顶点分成两组:S,V-S 一组是包括已确定最短路径的顶点的集合S,另一组是尚未确定的最短路径的顶点集V-S。S初始仅包含源v0,不断在V-S做贪心选择扩充集合S。,权非负的单源最短路径算法(Dijkstra),2023/10/21,10,权非负的单源最短路径算法(Dijkstra),初始时,S仅包含源v0,特殊路径:从源到G中某一顶点u且中间只经过S中顶点的路称为从源到u的特殊路径。步骤:(1)取v0
4、加入S中(2)从V-S中取出具有当前最短路径长度的顶点w加入S中。,2023/10/21,11,v5,v4,v0,100,60,10,10,v1,v3,20,50,30,v2,v0 v1 v2 v3 v4 v5,v0 v1 v2 v3 v4 v5,权非负的单源最短路径算法(Dijkstra),邻接矩阵,2023/10/21,12,2023/10/21,13,Dijkstra算法:,一般情况下,Distk=或者=+,设置辅助数组Dist,其中每个分量Disti 表示 当前所求得的从源点到其余各顶点 i 的最短路径的长度。,2023/10/21,14,1)在所有从源点出发的弧中选取一条权值最小的弧
5、,即为第一条最短路径。,2)修改其它各顶点的Disti值。假设求得最短路径的顶点为u,若 Distu+G.arcsuiDisti则将 Disti 改为 Distu+G.arcsui,V0和i之间存在弧,V0和i之间不存在弧,其中的最小值即为最短路径的长度。,2023/10/21,15,权非负的单源最短路径算法(Dijkstra),#include#include#include using namespace std;const int INF=0 xfffffff;#define maxn 110int grapmaxnmaxn;/邻接矩阵存储图int premaxn;/标记这个点是否已经被
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 路径 算法

链接地址:https://www.31ppt.com/p-6364984.html