find-min (resp. ), (resp. ) và là ba hoạt động quan trọng nhất của heap tối thiểu (resp. max-heap) và chúng thường có độ phức tạp của , và nếu bạn triển khai một heap / max-heap bằng cây nhị phân.find-maxdelete-mindelete-maxinsertO(1)O(logn)O(logn)
Bây giờ, giả sử thay vì bạn thực hiện một heap nhỏ bằng một mảng được sắp xếp (không giảm) (Trường hợp cho heap tối đa là tương tự). và có độ phức tạp nếu không yêu cầu trong ứng dụng của bạn, vì bạn có thể duy trì một con trỏ luôn trỏ đến phần tử tối thiểu trong mảng của bạn. Khi phần tử tối thiểu được loại bỏ, bạn chỉ cần di chuyển một bước sang phần tử tiếp theo trong mảng.find-mindelete-minO(1)insertpp
Đối phó với việc chèn trong một mảng được sắp xếp không phải là chuyện nhỏ. Với một phần tử mới , chúng ta có thể sử dụng tìm kiếm nhị phân để xác định vị trí của nó trong mảng để chèn nó. Nhưng vấn đề là nếu bạn muốn chèn nó vào đó, bạn phải di chuyển rất nhiều phần tử cũ (có thể là ) xung quanh để tạo chỗ trống cho phần tử mới cư trú. Điều này khá không hiệu quả đối với hầu hết các ứng dụng. Bạn cũng có thể chọn sắp xếp lại mảng sau khi một phần tử được chèn, tuy nhiên điều này đòi hỏi thời gian .eO(n)O(nlogn)
Điểm cuối cùng, cách bạn thực hiện cấu trúc dữ liệu thực sự phụ thuộc vào ứng dụng của bạn. KHÔNG thực hiện duy nhất là tốt nhất cho tất cả các trường hợp. Phân tích ứng dụng của bạn, tìm ra các hoạt động thường xuyên nhất và sau đó quyết định thực hiện phù hợp.