伪代码
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次。
亲手试试
这节课没有代码挑战。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
Bellman-Ford 算法:图算法中的所有课
自己练习: C 在线编译器