Tôi biết có hai cách để biểu diễn biểu đồ của tôi: một cách sử dụng ma trận và một cách khác là sử dụng danh sách.Làm cách nào để đảo ngược biểu đồ trong thời gian tuyến tính?
Nếu tôi sử dụng ma trận, tôi phải lật tất cả các bit trong ma trận. Không phải mất thời gian O (V^2) sao?
Nếu tôi sử dụng danh sách, tôi sẽ không phải duyệt qua từng danh sách, từng cái một và tạo một bộ mới? Điều đó dường như có thời gian O (V + E) là tuyến tính. Tôi có đúng không?
Vì vậy, tôi có một câu hỏi khác tại đây. Hãy xem xét, ví dụ, tôi sử dụng thuật toán Dijkstra trên đồ thị của tôi (ma trận hoặc danh sách), và chúng tôi sử dụng hàng đợi ưu tiên cho cấu trúc dữ liệu đằng sau hiện trường. Có mối quan hệ nào về biểu diễn biểu đồ và việc sử dụng cấu trúc dữ liệu không? Nó có ảnh hưởng đến hiệu suất của thuật toán không?
Giả sử tôi sử dụng danh sách đại diện và hàng đợi ưu tiên cho thuật toán Dijkstra, liệu có sự khác biệt giữa ma trận và xếp hàng ưu tiên sử dụng cho Dijkstra không?
Tôi đoán nó chỉ liên quan đến hoạt động makeQueue
? Hoặc họ không có khác nhau ở tất cả?
Traversal danh sách kề không xảy ra trong thời gian tuyến tính trong chung như E = O (V^2). – collapsar
@collapsar Nó * luôn luôn * xảy ra trong thời gian tuyến tính có liên quan đến các đỉnh * và cạnh *. Để xác định độ phức tạp thời gian chỉ trên một phần của đầu vào (nghĩa là chỉ đỉnh) (không nêu rõ) có vẻ hơi phi lý, * đặc biệt là * khi thời gian liên quan trực tiếp đến một phần khác của đầu vào (nhưng tôi không thể tranh luận rằng mọi người có thể định nghĩa nó như bạn đã làm). Và E = O (V^2) là cho các đồ thị dày đặc. Đồ thị thưa thớt là E = O (V). – Dukeling
@ dukeling bạn đúng khi chỉ ra rằng việc giảm kích thước của một vấn đề đối với một vô hướng duy nhất liên quan đến việc thiếu chính xác. otoh, ký hiệu lớn-Oh mô tả trường hợp xấu nhất và, xem xét đồ thị, không có ràng buộc bổ sung trường hợp xấu nhất có nghĩa là E = O (V^2). là chính xác, O (V^2) không chính xác cho việc đảo ngược cạnh trên ma trận kề - hoặc nếu thể hiện biểu diễn một cột cờ lớn so với col-major, chuyển vị là O (1). – collapsar