python Floyd-Warshall算法

def floyd_warshall(graph):
    dist = {u: {v: float('inf') for v in graph} for u in graph}
    for u in graph:
        dist[u][u] = 0
        for v, weight in graph[u]:
            dist[u][v] = weight
    for k in graph:
        for i in graph:
            for j in graph:
                dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j])
    return dist
graph = {
    0: [(1, 3), (2, 8)],
    1: [(3, 1)],
    2: [(1, 4)],
    3: [(0, 2)],}
dist = floyd_warshall(graph)
print("节点之间的最短路径:")
for u in dist:
    for v in dist[u]:
        print(f"从节点 {u} 到节点 {v} 的最短路径长度为: {dist[u][v]}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值