我已经从算法入门书中编写了MAX-HEAPIFY(A,i)方法。现在,我想使用while循环不递归地编写它。你能帮我吗?
您可以使用条件i等于HEAPSIZE的while循环,并使用所有其他相同条件,除非找到正确的位置即可中断循环。代码:-
while ( i < = heapsize) {
le <- left(i)
ri <- right(i)
if (le<=heapsize) and (A[le]>A[i])
largest <- le
else
largest <- i
if (ri<=heapsize) and (A[ri]>A[largest])
largest <- ri
if (largest != i)
{
exchange A[i] <-> A[largest]
i <- largest
}
else
break
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句