Mã giả
Bài học 4 trên 9 trong khóa học Thuật toán Dijkstra, thuật toán đồ thị của Coddy.
dijkstra(n, edges, source):
dist = [INF, INF, ...]; dist[source] = 0
visited = all false
repeat n times:
u = unvisited vertex with smallest dist (none reachable -> stop)
visited[u] = true
for each edge (a -> b, weight w):
if a == u and dist[u] + w < dist[b]:
dist[b] = dist[u] + w
replace every remaining INF with -1
return dist- INF chỉ là một số lớn hơn mọi khoảng cách thực tế (ví dụ: 1000000000).
- Chọn đỉnh chưa thăm có dist nhỏ nhất ở mỗi lượt là phần cốt lõi tham lam của Dijkstra. Quét danh sách cạnh phẳng để nới lỏng giúp code đơn giản và hoạt động trong mọi ngôn ngữ.
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 Dijkstra, thuật toán đồ thị
Tự luyện tập: Trình biên dịch C online