- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构最短路径剖析
数据结构(C++版) 清华大学出版社 专题3:最短路径 1 2 3 最短路径的定义 Dijkstra算法 Floyd算法 在非网图中,最短路径是指两顶点之间经历的边数最少的路径。 6.4 最短路径 最短路径 B A E D C AE:1 ADE:2 ADCE:3 ABCE:3 最短路径 在网图中,最短路径是指两顶点之间经历的边上权值之和最短的路径。 B A E D C 10 50 30 10 100 20 60 AE:100 ADE:90 ADCE:60 ABCE:70 6.4 最短路径 问题描述:给定带权有向图G=(V, E)和源点v∈V,求从v到G中其余各顶点的最短路径。 单源点最短路径问题 应用实例——计算机网络传输的问题:怎样找到一种最经济的方式,从一台计算机向网上所有其它计算机发送一条消息。 迪杰斯特拉(Dijkstra)提出了一个按路径长度递增的次序产生最短路径的算法——Dijkstra算法。 6.4 最短路径 基本思想:设置一个集合S存放已经找到最短路径的顶点,S的初始状态只包含源点v,对vi∈V-S,假设从源点v到vi的有向边为最短路径。以后每求得一条最短路径v, …, vk,就将vk加入集合S中,并将路径v, …, vk , vi与原来的假设相比较,取路径长度较小者为最短路径。重复上述过程,直到集合V中全部顶点加入到集合S中。 Dijkstra算法 6.4 最短路径 集 合 V-S 集 合 S vk v vi Dijkstra算法——伪代码 6.4 最短路径 设源点v,wv, vj表示从顶点v到顶点vj的权值,dist(v, vj)表示从顶点v到顶点vj的最短路径长度,Dijkstra算法的基本思想用伪代码描述如下: 1. 初始化:集合S = {v};dist(v, vj) = wv, vj, (j=1..n); 2. 重复下述操作直到S == V 2.1 dist(v, vk) = min{dist(v, vj), (j=1..n)}; 2.2 S = S + {vk}; 2.3 dist(v, vj)=min{dist(v, vj), dist(v, vk) + wvk, vj}; A B A E D C 10 50 30 10 100 20 60 S={A} A→B:(A, B)10 A→C:(A, C)∞ A→D: (A, D)30 A→E: (A, E)100 Dijkstra算法 6.4 最短路径 A B A E D C 10 50 30 10 100 20 60 S={A, B} A→B:(A, B)10 A→C:(A, B, C)60 A→D: (A, D)30 A→E: (A, E)100 B Dijkstra算法 6.4 最短路径 A B A E D C 10 50 30 10 100 20 60 S={A, B, D} A→B:(A, B)10 A→C:(A, D, C)50 A→D: (A, D)30 A→E: (A, D, E)90 B D Dijkstra算法 6.4 最短路径 A B A E D C 10 50 30 10 100 20 60 S={A, B, D, C} A→B:(A, B)10 A→C:(A, D, C)50 A→D: (A, D)30 A→E: (A, D, C, E)60 B D C Dijkstra算法 6.4 最短路径 A B A E D C 10 50 30 10 100 20 60 Dijkstra算法 S={A, B, D, C, E} A→B:(A, B)10 A→C:(A, D, C)50 A→D: (A, D)30 A→E: (A, D, C, E)60 B D C E 6.4 最短路径 图的存储结构:带权的邻接矩阵存储结构 数组dist[n]:每个分量dist[i]表示当前所找到的从始点v到终点vi的最短路径的长度。初态为:若从v到vi有弧,则dist[i]为弧上权值;否则置dist[i]为∞。 数组s[n]:存放源点和已经生成的终点,其初态为只有一个源点v。 数据结构 : 6.4 最短路径 1. 初始化数组dist和s; 2. while (s中的元素个数n) 2.1 在dist[n]中求最小值,其下标为k; 2.2 输出dist[k]; 2.3 修改数组dist; 2.4 将顶点vk添加到数组s中; Dijkstra算法——伪代码 6.4 最短路径 Dijkstra算法——伪代码 6.4 最短路径 A B E D C 10 5
您可能关注的文档
- 数据库课程设计报告及部分代码剖析.doc
- 数据挖掘2453剖析.ppt
- 书法基础——永字八法精选.ppt
- 乳腺增生及常用药物介绍精选.pptx
- 数据挖掘系列讲座九、电子商务与数据挖掘剖析.ppt
- 数据挖掘与统计决策--学科概述聚类分析因子分析剖析.ppt
- 数据挖掘概论剖析.ppt
- 数据查询与更新实验报告剖析.doc
- 数据流程图+IPO结构化语言剖析.pptx
- 数据排序C程序设计课程设计报告剖析.doc
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)