我这里有一个问题,需要设计一个数据结构,该结构在以下三个操作中采用 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) 部分。
任何人有任何想法请分享。