Giả sử chúng ta đang đưa ra: hàng đợi ưu tiên
- thực hiện theo tiêu chuẩn đống nhị phân H (thực hiện trên mảng)
- n kích thước hiện tại của đống
Chúng tôi đã sau chèn tính:
- W (n) = WorstCase (n) = Θ (lg n) (Theta). -> W (n) = Ω (lg n) và W (n) = O (lg n)
- A (n) = AverageCase (n) = Θ (lg n) (Theta). -> W (n) = Ω (lg n) và W (n) = O (lg n)
- B (n) = BestCase (n) = Θ (1) (Theta). -> W (n) = Ω (1) và W (n) = O (1)
Vì vậy, đối mọi trường hợp, chúng tôi có
- T (n) = Ω (1) và T (n) = O (lg n)
WorstCase là khi, chúng tôi chèn giá trị tối thiểu mới, do đó, heap phải đi toàn bộ chi nhánh.
BestCase là khi, cho tối thiểu-đống (đống với tối thiểu trên đầu trang), chúng tôi chèn BIG (lớn nhất trên cập nhật chi nhánh) giá trị (do đó, lên đống dừng lại ngay lập tức).
Bạn đã được hỏi về hàng loạt các hoạt động n trên đống chứa đã n yếu tố, đó là kích thước sẽ tăng trưởng
from n to 2*n
gì tiệm là ...
n=Θ(n)
2*n=Θ(n)
gì đơn giản hoá các phương trình của chúng tôi. (Chúng tôi không phải lo lắng về tăng trưởng của n, vì tăng trưởng của nó là do yếu tố không đổi).
Vì vậy, chúng tôi có "cho n chèn" hoạt động:
- Xi (n) = X_for_n_insertions (n)
- Wi (n) = Θ (n lg n)
- Ái (n) = Θ (n lg n)
- Bi (n) = Θ (n)
- nó ngụ ý, vì "tất cả các trường hợp":
- Ti (n) = Ω (n) và Ti (n) = O (n lg n)
T.B. Để hiển thị các ký hiệu Theta Θ, Omega,, bạn cần cài đặt UTF-8/tương thích.
Nguồn
2012-01-09 15:06:24
Tôi nghĩ kích thước của heap hiện tại nên nhập kết quả bằng cách nào đó. –