首页 > 编程语言 > 详细

单源最短路径的Dijkstra算法和多源最短路径的Floyd算法

时间:2021-04-15 15:30:07      阅读:25      评论:0      收藏:0      [点我收藏+]

什么是单源最短路径?

技术分享图片

 

 

 现在有6个结点,只求A到B、C、D、E、F的最短路径,而不同时求B到其他结点,C到其他结点,D到其他结点,E到其他结点,F到其他结点的最短路径。即只求某一个结点到其他结点的最短路径。

 

Dijkstra算法是什么意思?

现在试求A到B、C、D、E、F的最短路径。

先准备一个集合S,里面存放已经找到最短路径的结点,A到A一定是最短路径,故先把A放入集合S,即集合S:{A}

从A出发找相邻的,到B、C的距离是20、38,选最小的,将B放入集合S,即集合S:{A,B}。A→B的最短路径经过A、B

从B出发找相邻的,到A、C、D的距离是9、15、37,到A的已经在集合S中了,忽略;到C一共是35,到D一共是57。发现35比38小,集合S:{A,B,C}。A→C的最短路径经过A、B、C

从C出发找相邻的,到D、E的距离是18、5,到D一共的距离是53,到E一共的距离是40,53小于57,集合S:{A,B,C,D}。A→D的最短路径经过A、B、C、D

从D出发找相邻的,到A、F的距离是23、13,到A的忽略,到F一共的距离是66,没有到E的,那上面到E的就是最短路径,集合S:{A,B,C,D,E}。A→E的最短路径经过A、B、C、E

从E出发找相邻的,到D、F的距离是11、8,到D的忽略,到F一共的距离是48,48小于66,集合S:{A,B,C,D,E,F}。A→F的最短路径经过A、B、C、E、F

 

和Prim算法一样一样的!还是有区别的

最小生成树所有结点都是相连的,单源最短路径不必所有结点都相连,只要源点与所有结点都相连就可以

单源最短路径的Dijkstra算法和多源最短路径的Floyd算法

原文:https://www.cnblogs.com/jinlin-2018/p/14661913.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!