Menu
CoddyTech

Độ phức tạp thời gian và không gian

Bài học 7 trên 9 trong khóa học Thuật toán Dijkstra, thuật toán đồ thị của Coddy.

Độ phức tạp thời gian:

  • O(V2 + V*E) như được viết ở đây (mỗi vòng trong V vòng quét các đỉnh để tìm đỉnh có giá trị nhỏ nhất và quét các cạnh để nới lỏng). Dùng heap nhị phân và danh sách kề sẽ cải thiện độ phức tạp thành O((V + E) log V).

Độ phức tạp không gian:

  • O(V) cho các mảng khoảng cách và đã thăm (cộng thêm các cạnh đầu vào).

Tóm tắt:

  • Dijkstra tìm khoảng cách ngắn nhất từ một nguồn cho các trọng số không âm bằng cách tham lam chốt đỉnh gần nhất và nới lỏng các cạnh của đỉnh đó.
  • Thuật toán này không hoạt động với cạnh âm; hãy dùng Bellman-Ford cho các cạnh đó.

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