问答题
若有N个元素已构成一个小根堆,那么如果增加一个元素为K
n+1
请用文字简要说明你如何在log
2
n的时间内将其重新调整为一个堆?【中科院计算所1999三、2(5分)】
【正确答案】
正确答案:K
1
到K
n
是堆,在K
n+1
加入后,将K
1
..K
n+1
调成堆。设c=n+1,f=[c/2],若K
f
≤K
c
,则调整完成。否则,K
f
与K
c
交换;之后,c=f,f=[c/2],继续比较,直到K
f
≤K
c
,或f=0,即为根结点时,调整结束。算法可以参照下面五、31等题。
【答案解析】
提交答案
关闭