{A}
AlgoViz
首页
路线图
题单
教程
题目
可视化
错题本
进度
登录
加载中…
速度:
0.5x
1x
2x
4x
节点:
边(u,v,w):
黄色=k(中转),绿色=当前 (i,j) 发生更新,蓝色=本次比较的 (i,j)
i\j
0
1
2
3
4
0
0
3
8
∞
∞
1
3
0
2
5
∞
2
8
2
0
1
∞
3
∞
5
1
0
4
4
∞
∞
∞
4
0
Floyd-Warshall:以 k 为中转点,更新所有 i→j 的最短距
步骤 1 / 98
Floyd-Warshall:以 k 为中转点,更新所有 i→j 的最短距
Floyd-Warshall 多源最短路
复制代码
当前高亮行:
1
(Floyd-Warshall:以 k 为中转点,更新所有 i→j 的最短距)
1
function
floydWarshall(dist) {
2
for
(
let
k =
0
; k < n; k++)
3
for
(
let
i =
0
; i < n; i++)
4
for
(
let
j =
0
; j < n; j++)
5
if
(dist[i][k] + dist[k][j] < dist[i][j])
6
dist[i][j] = dist[i][k] + dist[k][j];
7
}