📜  算法|排序|问题9

📅  最后修改于: 2021-06-28 20:10:13             🧑  作者: Mango

假设我们正在使用堆排序对一个由八个整数组成的数组进行排序,并且我们刚刚完成了一些堆化(maxheapify或minheapify)操作。数组现在看起来像这样:
16 14 15 10 12 27 28
在堆根目录上执行了多少个heapify操作?
(A) 1
(B) 2
(C) 3或4
(D) 5或6答案: (B)
说明:在Heapsort中,我们首先构建一个堆,然后执行以下操作,直到堆大小变为1。
a)用最后一个元素交换根
b)调用heapify作为root
c)将堆大小减小1。

在这个问题中,假设heapify被调用了几次,我们看到给定数组中的最后两个元素是数组中的2个最大元素。这样情况就很清楚了,被称为2次是maxheapify。
这个问题的测验