您好,登录后才能下订单哦!
以下为找到一条单源最短路径的思想与思路描述
自己最近看了一下关于单源最短路径的算法,其基础是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),寻找完毕;
总结:
对每个点存储到该点对应的最短路径,如果有最短的路径则更新(初始每个路径长为无穷大);
从起点开始寻找可直接连接的点并更新路径;
如果无直接连接点或无更新点,则改点寻找结束,并找下一个有最短路径点开始;
如果有最短路径的点则再次寻找并更新路径;
如果找到终点且该终点路径为可继续寻找路径的点里的最短路径,则该路径为单源最短路径;
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。