- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 图 数据结构(用面向对象的基本方法与C 语言描述)(第2版)课件.ppt
Dijkstra算法可描述如下: ① 初始化: S?{v0}; dist[j]?Edge[0][j], j = 1, 2, …, n-1; // n为图中顶点个数 ② 求出最短路径的长度: dist[k]?min {dist[i]}, i?V-S ; S?S∪{k}; ③ 修改: dist[i]?min{dist[i], dist[k]+Edge[k][i]}, 对于每一个 i?V-S ; ④ 判断:若 S = V, 则算法结束,否则转②。 计算从单个顶点到其他各顶点最短路径的算法 void ShortestPath (GraphT, E G, T v, E dist[], int path[]) { //Graph是一个带权有向图。dist[j], 0≤jn, 是当前 //求到的从顶点v到顶点j的最短路径长度, path[j], //0≤jn, 存放求到的最短路径。 int n = G.NumberOfVertices(); bool *S = new bool[n]; //最短路径顶点集 int i, j, k; E w, min; for (i = 0; i n; i++) { dist[i] = G.getWeight(v, i); S[i] = false; if (i != v dist[i] maxValue) path[i] = v; else path[i] = -1; } S[v] = true; dist[v] = 0; //顶点v加入顶点集合 for (i = 0; i n-1; i++) { //求解各顶点最短路径 min = maxValue; int u = v; //选不在S中具有最短路径的顶点u for (j = 0; j n; j++) if (!S[j] dist[j] min) { u = j; min = dist[j];} S[u] = true; //将顶点u加入集合S for (k = 0; k n; k++) { //修改 w = G.GetWeight(u, k); if (!S[k] w maxValue dist[u]+w dist[k]) { //顶点k未加入S dist[k] = dist[u]+w; path[k] = u; //修改到k的最短路径 } } } }; Dijkstra算法中各辅助数组的最终结果 从表中读取源点0到终点v的最短路径的方法 : 举顶点4为例 path[4] = 2 path[2] = 3 path[3] = 0,反过来排列,得到路径 0, 3, 2, 4,这就是源点0到终点4的最短路径。 0 4 1 2 3 10 50 10 20 60 30 100 序号 顶点 1 顶点 2 顶点 3 顶点 4 Dist 10 50 30 60 path 0 3 0 2 边上权值为任意值的单源最短路径问题 带权有向图D的某几条边或所有边的长度可能为负值。利用Dijkstra算法,不一定能得到正确的结果。 若设源点v = 0,使用Dijkstra算法所得结果 0 1 2 5 7 -5 源点0到终点2的最短路径应是0, 1, 2,其长度为2,它小于算法中计算出来的dist[2]的值。 Bellman和Ford提出了从源点逐次绕过其他顶点,以缩短到达终点的最短路径长度的方法。该方法有一个限制条件,即要求图中不能包含有由带负权值的边组成的回路。 5 7 -5 0 1 2 1 1 -2 0 1 2 当图中没有由带负权值的边组成的回路时,有n 个顶点的图中任意两个顶点之间如果存在最短路径,此路径最多有n-1条边。 我们将以此为依据考虑计算从源点v到
您可能关注的文档
- 第五讲 系统的设计 嵌入式软件的设计开发 .ppt
- 第五讲 网站新闻编辑 网站编辑与相关管理 课件.ppt
- 第五讲 股票回购和 与大股东的利益输送 公司金融实务案例课件.ppt
- 第五讲 负载转矩特性及其和 与调速方式的配合—杜 2011年现代交流调速系统课件.ppt
- 第五讲 逻辑运算符和表达式 程序的设计参考课件.ppt
- 第五讲 道教与古代思想文化知识 中古传统文化知识讲座 (共选)课件.ppt
- 第五讲 银行风险相关管理 银行相关管理课件.ppt
- 第五讲 青少年身心的发展与促进 青少年心理的发展与教育 .ppt
- 第五讲. 数据库保护 数据库技术知识课件.ppt
- 第五讲. 数据库保护 网络数据库技术知识课件.ppt
- 第八章 地层和 与地质年代 地质学基础.ppt
- 第八章 城市环境规划 环境规划与相关管理电子教案.ppt
- 第八章 基本治疗性抗体(Cure Antibody 生物制品学 .ppt
- 第八章 大学生的问题解决和 与创造力 高等教育心理学课件.ppt
- 第八章 学习的社会认知观和建构主义观 《学和 与教的心理学》.ppt
- 第八章 学前儿童美术活动的组织和 与实施 《学前儿童艺术教育》课件.ppt
- 第八章 定价策略 市场营与销(第四版)课件.ppt
- 第八章 家庭与消费者行为 消费者行为学期末整体相关复习资料.ppt
- 第八章 工程项目风险相关管理 工程项目相关管理 .ppt
- 第八章 广告文案的创作 广告策划与相关管理课件.ppt
最近下载
- 《风景谈》精品课件.ppt VIP
- T11长轨列车卸轨作业指导书.pdf VIP
- 城市轨道交通交流供电系统的保护方式1城市轨道交通交流供电系.pptx VIP
- 《极简项目管理》读书笔记.pdf VIP
- 北京-绅宝D70-产品使用说明书-绅宝D70 2.3T-C7230C7G-绅宝产品使用说明书.pdf VIP
- 《地下工程防水技术规范》(GB50108-2008).pdf
- 2023 【小升初分班】小升初数学分班测试卷 (通用版,含答案).pdf VIP
- DLT 1253-2013 电力电缆线路运行规程.pdf VIP
- 商务谈判毕思勇课程教案.pdf VIP
- 信息处理技术员教程(第三版)第6章 演示文稿基础知识.pptx VIP
文档评论(0)