Cách hoạt động?
Bài học 3 trên 9 trong khóa học Thuật toán Dijkstra, thuật toán đồ thị của Coddy.
Giữ một mảng dist: dist[source] = 0 và mọi đỉnh khác bắt đầu ở giá trị "infinity" (một số rất lớn). Giữ một cờ visited cho mỗi đỉnh.
Quy trình từng bước:
- Trong số các đỉnh chưa được thăm, chọn đỉnh
ucódistnhỏ nhất. Nếu không có đỉnh nào có thể đến được, hãy dừng lại. - Đánh dấu
uđã được thăm: khoảng cách của nó đã cố định. - Nới lỏng mọi cạnh
u -> vcó trọng sốw: nếudist[u] + w < dist[v], hãy giảmdist[v]. - Lặp lại cho đến khi cố định khoảng cách của tất cả các đỉnh có thể đến được.
Kết thúc thuật toán, mọi đỉnh vẫn có giá trị infinity đều không thể đến được (ta báo cáo chúng là -1).
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ị
2Thuật toán
Cách hoạt động?Mã giảTriển khai (phần 1)Triển khai (phần 2)Tự luyện tập: Trình biên dịch C online