问答题 若有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等题。
【答案解析】