JavaScript is required

Với đồ thị n đỉnh, độ phức tạp tính toán của thuật toán Dijkstra là:

A.

O(n3 log2n)

B.

O(n3)

C.

O(n2)

D.

O(n2 log2n)

Trả lời:

Đáp án đúng: C


Thuật toán Dijkstra tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh còn lại trong đồ thị có trọng số không âm. Độ phức tạp của thuật toán Dijkstra phụ thuộc vào cấu trúc dữ liệu được sử dụng để lưu trữ tập hợp các đỉnh chưa được xét. * **Sử dụng mảng:** Độ phức tạp là O(n^2), trong đó n là số đỉnh. * **Sử dụng hàng đợi ưu tiên (heap nhị phân):** Độ phức tạp là O(E log V), trong đó E là số cạnh và V là số đỉnh. Trong trường hợp đồ thị dày đặc (E ≈ V^2), độ phức tạp trở thành O(V^2 log V) hay O(n^2 log n). * **Sử dụng Fibonacci heap:** Độ phức tạp là O(E + V log V), có thể tốt hơn trong một số trường hợp, nhưng phức tạp hơn để triển khai. Trong các phương án được đưa ra, O(n^2 log2n) (tương đương O(n^2 log n)) là độ phức tạp phổ biến nhất khi triển khai Dijkstra với hàng đợi ưu tiên (heap nhị phân).

Câu hỏi liên quan