max-heapify和min-heapify之间的差异是什么?

时间:2018-04-11 18:09:09

标签: heap min-heap max-heap

其实我也听说过以下两个条款─ 再次向上复位并再次向下复位。但是max-heapify和min-heapify的含义是什么?这两个术语(max-heapify和min-heapify)是否以某种方式与向上重新上升和再次向下重新合并有关?根据我的说法,向上重新加注和向下重新加注都在max-heapify以及min-heapify之下。如果我错了,请纠正我。还请告诉我这四个术语的时间复杂性。

1 个答案:

答案 0 :(得分:0)

将项添加到二进制堆时执行

向上重新加载。添加项目时,请执行以下操作:

  1. 将项目添加到数组的末尾。
  2. 将它在堆中向上移动到正确的位置。这一步是向上重新调整。它也被称为"冒泡," "筛选,"或者"游泳。"
  3. 从堆中删除根项时,请执行以下操作:

    1. 将根项替换为堆上的最后一项。
    2. 将该项目向下移动到适当的位置。这是向下重新调整。它也被称为"气泡下降," "筛选,"或者"下沉。"
    3. 这两项操作同样适用于min-sheaps和max-sheaps。

      在最小堆中,实现向下重新定义的函数通常称为" min-heapify。"在最大堆实现中,该函数通常称为" max-heapify。"

      向上重新调整和向下重新注射都具有复杂度O(log n)。