版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
迪杰斯特拉算法实现第九组11123529-罗凯耀11123575-王鸣迪杰斯特拉--算法思想按从某顶点到其它顶点的路径长度递增的方式,逐渐求到各顶点的最短路径。设给定源点为Vs,S为已求得最短路径的终点集,开始时令S={Vs}。当求得第一条最短路径(Vs,Vi)后,S为{Vs,Vi}。根据以下结论可求下一条最短路径。设下一条最短路径终点为Vj,那么Vj只有:◆源点到终点有直接的弧<Vs,Vj>;◆从Vs出发到Vj的这条最短路径所经过的所有中间顶点必定在S中。即只有这条最短路径的最后一条弧才是从S内某个顶点连接到S外的顶点Vj。假设定义一个数组dist[n],其每个dist[i]分量保存从Vs出发中间只经过集合S中的顶点而到达Vi的所有路径中长度最小的路径长度值,那么下一条最短路径的终点Vj必定是不在S中且值最小的顶点,即:dist[i]=Min{dist[k]|Vk∈V-S}利用上述公式就可以依次找出下一条最短路径。迪杰斯特拉-算法思想源迪杰斯特拉算法
--数据组织源有n个结点的网络数据源已确定结点集S待选结点集V-S结点临时最短路径长度结点临时最短路径迪杰斯特拉算法—步骤①令S={Vs},用带权的邻接矩阵表示有向图,对图中每个顶点Vi按以下原那么置初值:②选择一个顶点Vj,使得:Distance[j]=Min{Distance[k]|Vk∈V-S}Vj就是求得的下一条最短路径终点,将Vj并入到S中,即S=S∪{Vj}。③对V-S中的每个顶点Vk,修改dist[k],方法是:假设Distance[j]+Wjk<Distance[k],那么修改为:Distance[k]=Distance[j]+Wjk(Vk∈V-S)④重复②,③,直到S=V为止。Wsii≠s且<vs,vi>∈E,wsi为弧上的权值∞i≠s且<vs,vi>不属于Edist[i]=0i=s迪杰斯特拉算法—实现voidDijkstra(MGraphg,intstart,intend){intdist[MAXV],path[MAXV];ints[MAXV];intmindis,i,j,u;for(i=0;i<g.n;i++){dist[i]=g.edges[start][i];//dist数组初始化s[i]=0;if(g.edges[start][i]<INF) path[i]=start;else path[i]=-1;//path数组初始化}s[start]=1;//顶点start参加顶点集合s path[start]=0;for(i=0;i<g.n;i++)//选择不在集合s中且具有最短路径的顶点{mindis=INF;for(j=0;j<g.n;j++){if(s[j]==0&&dist[j]<mindis){u=j;mindis=dist[j];}}s[u]=1;//将顶点u参加集合for(j=0;j<g.n;j++)//修改dist和path{if(s[j]==0){ if((g.edges[u][j]<INF)&&(dist[u]+g.edges[u][j]<dist[j])){dist[j]=dist[u]+g.edges[u][j];path[j]=u;}}}}Dispath(g,dist,path,s,g.n,start,end);}EFDBCA8253018107154úúúúúúúúûùêêêêêêêêë饥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥0181004070158023050BACDEFBACDEF运算过程表邻接矩阵图数据源——邻接矩阵已确定结点集S待选结点集V-S结点临时最短路径长度——Distance数组结点临时最短路径——Path数组Dijkstra算法--数据组织运算过程表Dijkstra算法—例子EFDBCA8253018107154úúúúúúúúûùêêêêêêêêë饥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥0181004070158023050BACDEFBACDEF邻接矩阵图例:计算从A点出发的单源最短路径运算过程表Dijkstra算法—例子EFDBCA8253018107154úúúúúúúúûùêêêêêêêêë饥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥0181004070158023050BACDEFBACDEF邻接矩阵图例:计算从A点出发的单源最短路径运算过程表Dijkstra算法—例子EFDBCA8253018107154úúúúúúúúûùêêêêêêêêë饥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥0181004070158023050BACDEFBACDEF邻接矩阵图例:计算从A点出发的单源最短路径运算过程表Dijkstra算法—例子EFDBCA8253018107154úúúúúúúúûùêêêêêêêêë饥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥0181004070158023050BACDEFBACDEF邻接矩阵图例:计算从A点出发的单源最短路径运算过程表Dijkstra算法—例子EFDBCA8253018107154úúúúúúúúûùêêêêêêêêë饥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥0181004070158023050BACDEFBACDEF邻接矩阵图例:计算从A点出发的单源最短路径运算结果Dijkstra算法—例子úúúúúúúúûùêêêêêêêêë饥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥0181004070158023050BACDEFBACDEF邻接矩阵图EFDBCA8510715通过Distance数组得到最短路径长度:D:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建莆田市莆阳医院内科医生招聘5人考试备考题库附答案
- 2026年教师资格之中学教育知识与能力考试题库300道【学生专用】
- 2024年洛扎县幼儿园教师招教考试备考题库新版
- 2025广西南宁市科学技术协会外聘人员招聘1人考试参考题库附答案
- 2026年资料员之资料员基础知识考试题库300道附参考答案【典型题】
- 2026年心理咨询师之心理咨询师基础知识考试题库及完整答案【名师系列】
- 2026年消防设施操作员之消防设备高级技能考试题库300道含完整答案【历年真题】
- 2026年抖音考试题库及参考答案(能力提升)
- 2026年材料员之材料员基础知识考试题库300道含答案【综合题】
- 2025年舟山市普陀区虾峙镇工作人员招聘2人考试题库附答案
- 2025天津大学招聘15人备考考试试题及答案解析
- 2025年山西大地环境投资控股有限公司社会招聘116人备考题库有答案详解
- 2025抖音流量生态深度解析:算法逻辑、爆流密码与运营实战全指南
- 2025至2030中国警用装备行业项目调研及市场前景预测评估报告
- T-CFA 030501-2020 铸造企业生产能力核算方法
- JBT 8127-2011 内燃机 燃油加热器
- MOOC 西方园林历史与艺术-北京林业大学 中国大学慕课答案
- 混凝土缓凝剂-标准
- 年生产一亿粒阿莫西林胶囊(0.25)
- 危重患者的早期识别
- 环泊酚注射液-临床用药解读
评论
0/150
提交评论