向具有n个结点的堆中插入一个新元素的时间复杂度为( ),删除一个元素的时间复杂度为( )。

A.O(1)
B.O(n)
C.O(nlog2n)
D.O(nlog2n)

【答案】:C
在向有n个元素的堆中插入一个新元素时,需要调用一个向上调整的算法,比较次数最多等于树的高度减1,由于树的高度为[log2n]+1,所以堆的向上调整算法的比较次数最多等于[log2n]。此处需要注意到,调整堆和建初始堆的时间复杂度是不一样的,读者可以仔细分析两个算法的具体执行过程。
温馨提示:答案为网友推荐,仅供参考
相似回答