图的最短路径算法——Floyd算法

图的最短路径算法
声明:图源 https://blog.csdn.net/qq_35644234/article/details/60875818
算法代码源 https://www.jianshu.com/p/f910ce1fe7b1
本文主要是代码理解的注解以及调试。。。哇,我觉得代码写的清晰的人真的很厉害啊

Floyd算法

这里写图片描述

转自:作者:廖少少

链接:https://www.jianshu.com/p/f910ce1fe7b1

来源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


import copy
#定义无穷值
inf=float("inf")
def Floyd(G):
    n=len(G)
    path=copy.deepcopy(G)
    #vi源点,vj目的点,vk作为中间点
    for k in range(0,n):
        for i in range(0,n):
            for j in range(0,n):
                print("Comparing path[%s][%s] and {path[%s][%s]+path[%s][%s]}"%(i,j,i,k,k,j))
                print("Former path[%s][%s]=%s"%(i,j,path[i][j]))
                path[i][j]=min(path[i][k]+path[k][j],path[i][j])
                print("Present path[%s][%s]=%s"%(i,j,path[i][j]))
    return path
if __name__ == "__main__":
    G=[
        [inf,12,inf,inf,inf,16,14],
        [12,inf,10,inf,inf,7,inf],
        [inf,10,inf,3,5,6,inf],
        [inf,inf,3,inf,4,inf,inf],
        [inf,inf,5,4,inf,2,8],
        [16,7,6,inf,2,inf,9],
        [14,inf,inf,inf,8,9
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值