堆的數(shù)據(jù)結(jié)構(gòu)能夠使得堆頂總是維持最大(對(duì)于大根堆)或最小(對(duì)于小根堆),給定一個(gè)數(shù)組,對(duì)這個(gè)數(shù)組進(jìn)行建堆,則平均復(fù)雜度是多少?如果只是用堆的 push 操作,則一個(gè)大根堆依次輸入 3,7,2,4,1,5,8 后,得到的堆的結(jié)構(gòu)示意圖是下述圖表中的哪個(gè)?()
B.O(n) ,
C.O(logn)
D.O(n),
[解析]
堆是利用完全二叉樹的結(jié)構(gòu)來維護(hù)一組數(shù)據(jù),然后進(jìn)行相關(guān)操作,一般的操作進(jìn)行一次的時(shí)間復(fù)雜度在O(1)~O(logn)之間。采用push的操作實(shí)現(xiàn)大根堆,每次輸入后,為了保證是大根堆,每插入一個(gè)元素,調(diào)整一次。具體過程如下:

所以正確答案為D。