Mã giả
Bài học 4 trên 9 trong khóa học Thuật toán Bellman-Ford cho đồ thị của Coddy.
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.- Điều kiện bảo vệ
dist[u] != INFngăn ta tạo đường đi từ các đỉnh không thể đến được. - Nới lỏng toàn bộ danh sách cạnh là một lượt. Bellman-Ford chỉ đơn giản là lặp lại lượt đó
n - 1lần.
Tự làm thử
Bài học này không có thử thách code.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Thuật toán Bellman-Ford cho đồ thị
Tự luyện tập: Trình biên dịch C online