我正在实施MinHeap
我知道如何实施deleteMax()
但需要O(n)
次
但我需要O(log(n))
算法..
如果它存在,我搜索并没有找到办法做到这一点
我有deleteMax()
次O(log(n))
的任何方式吗?
答案 0 :(得分:4)
你可以创建一个Min-max heap,在O(log n)时间内创建deleteMin()
和deleteMax()
。
这是我知道做你想做的唯一O(log n)方式。 Min-max堆具有与Min-heap或Max-heap相同的渐近边界,但其实际运行时间会稍长。