Menu
CoddyTech

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.

quiz iconTự kiểm tra

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