(USC CSCI 303 作业 4) 问题 7 (6.5-7):
该操作从堆中
Heap-Delete(A, i)
删除节点中的项目。给出一个在O ( lg n ) 时间内运行n元素最大堆的实现。i
A
Heap-Delete
这是参考解决方案的伪代码和描述:
Heap-Delete(A, i)
A[i] ↔ A[length(A)]
length(A) ← length(A) - 1
Heapify(A, i)
该算法删除节点处的元素
i
,并将其替换为最后一个元素。然后算法Heapify
从节点运行i
。
如果“↔”改为“←”不是更好吗?或者这真的有必要吗?
我从 http://www-scf.usc.edu/~csci303/cs303hw4solutions.pdf得到这个(第 4 页)