Data structures 提取最小运行时间是什么?为什么?
为什么在堆中提取分钟数需要O(lg n)?请参见: 简单地说,您可以执行三个步骤:Data structures 提取最小运行时间是什么?为什么?,data-structures,heap,extract,Data Structures,Heap,Extract,为什么在堆中提取分钟数需要O(lg n)?请参见: 简单地说,您可以执行三个步骤: 首先,用最后一级的最后一个元素替换堆的根。这是为O(1)做的 第二,将新根与其子级进行比较(仍然是O(1))。如果一切顺利,你就完了 现在很棘手。如果新根更大(我们认为你有一个最小的顶部)比它的一个孩子,交换他们!现在,您(可能)在孩子的子树中也遇到了同样的问题。继续,在子树内重复步骤2和3!您将不必须重复此操作的次数超过树中的级别计数,因为每次您向下移动一个级别。平衡二叉树中有O(lgn)级。注意:如果你的根
- 首先,用最后一级的最后一个元素替换堆的根。这是为O(1)做的
- 第二,将新根与其子级进行比较(仍然是O(1))。如果一切顺利,你就完了李>
- 现在很棘手。如果新根更大(我们认为你有一个最小的顶部)比它的一个孩子,交换他们!现在,您(可能)在孩子的子树中也遇到了同样的问题。继续,在子树内重复步骤2和3!您将不必须重复此操作的次数超过树中的级别计数,因为每次您向下移动一个级别。平衡二叉树中有O(lgn)级。注意:如果你的根比它的两个子项都大,那么换一个较小的(你想把它调大)