关于floyd算法距离更新过程的一点思考

关于floyd算法距离更新过程的一点思考

我们知道floyd算法的迭代过程是每次迭代,令一个节点加入“路由节点的集合”,并围绕这一点进行更新。

假设有一个图,floyd算法运行到2节点,(1,5)之间的路由节点是2。
如果将3节点加入“路由节点的集合”后,(1,2)之间的距离w2(1,2)被改变了,得到w3(1,2),那么是否需要围绕2节点更新,来修正(1,5)之间的距离呢?

答案是否定的,尽管3节点在第二次迭代不参加路由,我们还是记录了(3,5)之间的距离,如果w2(1,3)+w2(3,5)确实小于w2(1,2)+w2(2,5),那么可以直接对w3(1,5)进行更新,同时路由记录也要改变。如果是前向路由的策略,那么更新后的r3(1,5)将等于r2(1,3)。

这种更新过程与3是否在(1,2)之间,或者说2是否在(3,5)之间都是无关的。所以对于操作和编程都十分方便。

这是我的一点理解,希望对后来的同学们有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值