У меня есть проблема, которая требует разработки структуры данных, которая принимает O(lg n) в худшем случае для следующих трех операций:
a) Insertion: Insert the key into data structure only if it is not already there.
b) Deletion: delete the key if it is there!
c) Find kth smallest : find the ݇k-th smallest key in the data structure
Мне интересно, следует ли мне использовать кучу но у меня до сих пор нет ясного представления об этом.
Я могу легко получить первые две части за O(lg n), даже быстрее, но не знаю, как поступить с частью c).
У кого есть идеи, поделитесь.