貝爾曼-福特演算法 | 會動的演算法

符號表示

資料
起點到各節點的最短距離dist
節點間的距離weight

初始化起點
將起點的暫定距離初始化為 0。dist[s] ← 0
將其餘節點的暫定距離初始化為極大的值。dist[v] ← INF
更新距離
更新暫定距離。if dist[e.v] > dist[u] + e.weight:
    dist[e.v] ← dist[u] + e.weight
輸出最短距離
輸出由起點開始的最短距離。

演算法動畫

初始化起點
貝爾曼-福特演算法 | 初始化起點

更新距離
貝爾曼-福特演算法 | 更新距離

輸出最短距離
貝爾曼-福特演算法 | 輸出最短距離