Floyd算法属于多源最短路,算法原理也蛮简单,计算各个节点之间的最短距离, 。有点类似DP的思想,每次以一个节点为中转节点,比较min(起点->终点,起点->中转节点->终点)的最短距离 即可。三层for循环搞定很简单。
代码实现如下:
def Floyd(graph): num_node = len(graph) inf = float('inf') # 将无边的权重设为无穷大 w = [<