【无标题】最短路径问题

来自pintia上的一道选择题

试利用Floyed算法,求下图所示有向图的各对顶点之间的最短路径。下列选项哪个给出了正确的最短路径长度矩阵和最短路径矩阵? 

6-11.JPG

答案A和答案D在第二矩阵中,数据类型不一致,排除此答案 ,接下来我们来对比一下答案B和答案C,经过计算得知存在D到A和D到B的最短路径,所以排除答案B,正确答案为C

floyeed算法为求图中任意两个顶点之间的最短路径的算法,每次加入一个顶点看是否有最短路径

根据题意,初始状态为

ABCDABCD
A0342A-1-1-1-1
B80B-1-1  
C620C-1-1-1 
D30D  -1-1

 现在加入顶点A,产生了三条最短路径,B可以经过A到达C,B可以经过A到达D,C可以经过A到达D

ABCDABCD
A0342A-1-1-1-1
B801210B-1-1BACBAD
C6208C-1-1-1CAD
D30D  -1-1
ABCDABCD
A0342A-1-1-1-1
B801210B-1-1BACBAD
C6208C-1-1-1CAD
D30D  -1-1

 现在加入B,最短路径没有变化

现在加入C,产生两条最短路径,D可以经过C到达A,到达B 

ABCDABCD
A0342A-1-1-1-1
B801210B-1-1BACBAD
C6208C-1-1-1CAD
D9530DDCADCB-1-1

加入D,最短路径没有变化 

ABCDABCD
A0342A-1-1-1-1
B801210B-1-1BACBAD
C6208C-1-1-1CAD
D9530DDCADCB-1-1

6-11Cc.JPG

答案中的0表示加入顶点A以后,也就是在第一次加入顶点以后产生了最短路径,-1+1=0

D到A之间的最短路径是在第3次加入顶点以后产生的最短路径,-1+3=2

数字可以表示出加入哪个顶点以后产生的最短路径,比如0=-1+1 表示加入顶点A以后产生的最短路径,该最短路径是经过顶点A的

2=-1+3表示加入顶点C以后产生的最短路径,该最短路径是经过顶点C的 

  • 20
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值