标签: algorithm binary-heap
删除二进制堆中的最小元素后,即在删除根之后,我理解必须调整堆以保持堆属性。 但是,执行此操作的首选方法似乎是将最后一个叶子分配给根并将其筛选。
我想知道为什么我们不接受曾经是根的那个小孩子,只是继续筛选所有的孩子?这不是相同数量的操作,那么为什么选择“将最后一个叶子转换为根和筛选”方法更好?
答案 0 :(得分:4)
因为您必须在最后一行保留从左侧填充的树。从上到下向上筛选,你不能保证你向上筛选的最后一个元素将是最右边的元素。