删除最小元素后重新调整二进制堆

时间:2010-05-22 11:48:19

标签: algorithm binary-heap

删除二进制堆中的最小元素后,即在删除根之后,我理解必须调整堆以保持堆属性。 但是,执行此操作的首选方法似乎是将最后一个叶子分配给根并将其筛选。

我想知道为什么我们不接受曾经是根的那个小孩子,只是继续筛选所有的孩子?这不是相同数量的操作,那么为什么选择“将最后一个叶子转换为根和筛选”方法更好?

1 个答案:

答案 0 :(得分:4)

因为您必须在最后一行保留从左侧填充的树。从上到下向上筛选,你不能保证你向上筛选的最后一个元素将是最右边的元素。