若有N个元素已构成一个小根堆,那么如果增加一个元素为K n+1 ,请用文字简要说明如何在log 2 n的时间内将其重新调整为一个堆。
【正确答案】正确答案: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,即为根结点,调整结束。
【答案解析】