首页 > 代码库 > 单源最短路径
单源最短路径
以下为找到一条单源最短路径的思想与思路描述
自己最近看了一下关于单源最短路径的算法,其基础是DijKstra算法:从某个起点开始,选择直接连接的最短路径点,更新最短路径长并逐渐扩到终点。
如图所示的路径:(手工画图,若丑勿怪)
起点为1,寻找到终点3,则操作如下:
一、1找到直接相连的点及其路径长:2(9)、4(6)、5(11),更新点的最短路径数据,此时4(6)路径最短,则以4(6)为起点寻找;
二、4找到5(6+6=12),此时12 > 11不更新,则4(6)点寻找完毕,未结束;
三、此时已找的最短路径点为2(9),则点2可找到点3(9+12=21)并更新,此时2(9)点寻找完毕,21非最短距离,未结束;
四、此时可继续寻找的点为5(11),直接连接的点为3(11+5=16),此时16 < 21则更新点3(21)为3(16),此时点5寻找完毕;
五、此时在可寻找的点里3(16)为最短路径且3为终点(此处只有点3),寻找完毕;
总结:
对每个点存储到该点对应的最短路径,如果有最短的路径则更新(初始每个路径长为无穷大);
从起点开始寻找可直接连接的点并更新路径;
如果无直接连接点或无更新点,则改点寻找结束,并找下一个有最短路径点开始;
如果有最短路径的点则再次寻找并更新路径;
如果找到终点且该终点路径为可继续寻找路径的点里的最短路径,则该路径为单源最短路径;
本文出自 “zmh009” 博客,请务必保留此出处http://zmh009.blog.51cto.com/11619347/1877077
单源最短路径
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。