Floyd算法 最外层 迭代顺序 关系

Floyd 算法与最外层迭代顺序无关

这个算法可以计算出任意两点之间的最短路 (当然不包含负环 包含负环的图没有最短路!)

Floyd 算法在网上有很多解释 我就不赘述 在这里我想 证明一个我在理解过程中一的一个问题

当时看这个算法的时候 总觉得他的求最短路的过程中 和检查的点出现的顺序有关系 一觉醒来 终于发现了其中的原委!!! (睡觉是多么骚的一个操作啊)

假设存u->v之间的最短路为 u->i->j->v
我们先假设他的迭代顺序(最外层循环)为 i , j
那么当以i开始检查时 寻找以i为中间点的 图中任意两个点 我们发现 u->i->j这条路可以更新u->j的距离
当以j为中间点迭代时 我们已经有了u->j 当检查到u->v 时 发现恰好可以用j点作为中间点 更新了 u->j->v
(u->i->j->v)

假设迭代顺序为 j,i
当我们以j 检查时 我们发现了 i->j->v可以更新 下一次以i 检查时 我们检查u->v时 发现恰好可以 u->i->v (u->i->j->v)
现在想想 其实这个问题不难 但是为了帮助走入这个误区的朋友 还是果断下下这篇心得。

FINISHED!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值