比较插入操作二进制堆

时间:2013-07-22 06:57:02

标签: algorithm priority-queue binary-heap

当您使用二进制堆来实现优先级队列时,表明插入操作最多需要1 + lg N个比较。(lg N = N的log,到基数2)。

考虑下面的图片,

enter image description here

这里树的最大高度为3.即使节点T被添加到最底层,当T游向上时,它只会遇到包括根的最多3个节点。这意味着只有3最多比较。

但声明表明最多会有1 + lg 11 = 1 + 3 = 4比较。

这怎么可能?有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

考虑一下如果现在插入节点B会发生什么。最多可以有四个比较,例如:

B<E? B<G? B<S? B<T?

希望能回答你的问题。