Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Độ phức tạp摊销 (Amortized Complexity)


Phân tích摊销

Phân tích này dùng khi thao tácoccasionally rất chậm, nhưng hầu hết thao tác thường xuyên thì nhanh. Cấu trúc dữ liệu cần phân tích摊销: Bảng băm, Tập hợp rời rạc, v.v.

Trong Bảng băm, hầu hết tìm kiếm O(1), nhưng đôi khi O(n). Khi tìm/chèn phần tử, đa số trường hợp thời gian hằng số, nhưng khi va chạm cần O(n) để giải quyết.

Phương pháp tổng hợp (Aggregate Method)

Dùng để tìm tổng chi phí. Nếu thêm nhiều dữ liệu, cần tìm chi phí摊销 bằng công thức.

Đối với chuỗi n thao tác, chi phí là:

Độ phức tạp摊销 (Amortized Complexity)

Ví dụ Phân tích摊销

Mảng động: chèn tại chỉ mục O(1). Nếu chỉ mục không có, không làm được trong thời gian hằng số. Lúc đó gấp đôi kích thước mảng rồi chèn.

Độ phức tạp摊销 (Amortized Complexity)

Đối với mảng động, cᵢ = chi phí lần chèn thứ i.

Độ phức tạp摊销 (Amortized Complexity)