Tôi nghĩ rằng điều đầu tiên cần xem xét là một hoạt động được hỗ trợ là gì?
Có phải "chèn một giá trị với một khóa cố định, cụ thể" (ví dụ: đối với các khóa được lấy từ cõi số nguyên, chèn với khóa = 3) có tương ứng với thao tác được hỗ trợ cho heap min không?
Không, bởi vì hoạt động đó có thể được thực hiện tầm thường với các hoạt động được hỗ trợ chung hơn. Tương tự như vậy, chèn 2 phần tử cùng một lúc có thể được thực hiện với insert
thao tác hiện tại .
Mặt khác, insert
hoạt động không thể được định nghĩa khác hơn là bằng cách tiết lộ chi tiết thực hiện. Nó khá giống nhau đối với các hoạt động được liệt kê trên trang wikipedia, heapify
ngoại trừ, có thể được thực hiện bởi một chuỗi insert
.
Nói cách khác, có các hoạt động cơ bản được cung cấp trên loại, liên kết chặt chẽ với các chi tiết triển khai để chúng hoạt động tốt và có các hoạt động khác không tuân thủ quy tắc đó và do đó có thể được thực hiện dưới dạng kết hợp của những người kinh điển.
Với định nghĩa đó, bạn có nghĩ rằng khóa tăng có thể được thực hiện với các hoạt động được hỗ trợ khác một cách triệt để mà không làm giảm hiệu suất không? Nếu vậy, thì đó không phải là một hoạt động được hỗ trợ theo định nghĩa trên, nếu không, bạn có thể đúng.
Có thể cho rằng, định nghĩa của một hoạt động được hỗ trợ mà tôi cung cấp là của tôi, theo như tôi biết. Nó không chính thức, và do đó có thể thảo luận (mặc dù nó có vẻ khá rõ ràng đối với tôi). Tuy nhiên, tôi sẽ rất vui nếu ai đó có thể cung cấp một nguồn xác định rõ ràng và rõ ràng một hoạt động được hỗ trợ cho các kiểu dữ liệu, hoặc ít nhất là định nghĩa nó theo thuật ngữ tốt hơn của tôi (định nghĩa được đưa ra trong CLR? Tôi không có bản sao ).
Điểm thứ hai của tôi sẽ là về cách chúng tôi xác định hàng đợi ưu tiên (đó là lý do của các đống nhị phân). Là increase_key
một hoạt động cần thiết cho kiểu dữ liệu đó, tức là để sử dụng đúng cách của nó?
Như bạn có thể thấy góc độ của tôi là tất cả về định nghĩa. Tôi không thực sự cung cấp câu trả lời cho câu hỏi của bạn, chỉ đơn thuần là một số gợi ý, vì vậy các cải tiến đều được chào đón.