最短路简单证明

Floyd简单证明:
首先我们知道从一个图中可以抽出来单条路,比如下面的这个图
在这里插入图片描述
我们可以写成1<—>2<—>3,1<—>3,2<—>1<—>3,2<–>3,2<—>3<—>1,2<—>1,的形式
那么我们假设有个图的某条路a—b---c—d---e—f---g—h
我们只看这条路,其他路不管每次选一个节点做桥梁;
假设第一次选了b节点,然后与b直接相连的两个节点,也就是是a和c,就会被dis[a][c]=min(dis[a][b]+dis[b][c],dis[a][b]),更新,此时a—b---c—d---e—f---g—h这条路径上的从a经过一个点b再到c的最短路就是求出来了,记作a(b)c,为什么只是这条路径呢,因为
在这里插入图片描述

有可能在另外一条路上会有X在中间的情况。

然后我们继续选择节点c,此时与c直接相连的就不只有b和d了还有刚才求得的a(b)c,此时的dis[a][d]=dis[a(b)c]+dis[c][d],那么从a到d的最短路也就求出来了,记作a(b)©d;这样推下去,经过点a(b)©(d)(e)(f)(g)的最短路也就出来了,图中所有从a到g的路径取也就出来了,同理任意两个点的最短路也就出来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值