堆的數據結構能夠使得堆頂總是維持最大(對于大根堆)或最?。▽τ谛「眩?,給定一個數組,對這個數組進行建堆,則平均復雜度是多少?如果只是用堆的 push 操作,則一個大根堆依次輸入 3,7,2,4,1,5,8 后,得到的堆的結構示意圖是下述圖表中的哪個?()
B.O(n) ,
C.O(logn)
D.O(n),
[解析]
堆是利用完全二叉樹的結構來維護一組數據,然后進行相關操作,一般的操作進行一次的時間復雜度在O(1)~O(logn)之間。采用push的操作實現大根堆,每次輸入后,為了保證是大根堆,每插入一個元素,調整一次。具體過程如下:
所以正確答案為D。