为什么在将新节点插入堆时需要不超过1 + logN的比较?

时间:2017-02-12 00:50:01

标签: algorithm heap heapsort

我认为在将新节点插入堆中时,它可能传递的节点数量是logN,为什么它是(1 + logN),其中1是从?

1 个答案:

答案 0 :(得分:2)

当笔记数为2 n 时,必须考虑边界情况。一堆n级适合2 n -1个对象,因此再添加一个对象会启动新级别:

Heap

黑色方块表示三级堆的七个元素。红色元素是八号。如果您的搜索将您带到最后一个元素的位置,则最终会进行四次比较,即使log 2 8为3。