Menu
CoddyTech

伪代码

Coddy Bellman-Ford 算法:图算法 课程的第 4 课,共 9 课。

bellmanFord(n, edges, source):
   dist = [INF, INF, ...]; dist[source] = 0
   repeat (n - 1) times:
      for each edge (u -> v, weight w):
         if dist[u] != INF and dist[u] + w < dist[v]:
            dist[v] = dist[u] + w
   replace every remaining INF with -1
   return dist

// negative cycle: after n-1 passes, if any edge STILL relaxes, a
// negative cycle exists.
  • 检查条件 dist[u] != INF 可以防止我们从不可达顶点构造路径。
  • 遍历整个边列表算作一轮。Bellman-Ford 就是将这一轮重复 n - 1 次。

亲手试试

这节课没有代码挑战。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

Bellman-Ford 算法:图算法中的所有课

自己练习: C 在线编译器