📜  门| GATE CS 2020 |第57章

📅  最后修改于: 2021-06-29 05:29:12             🧑  作者: Mango

考虑包含1023个元素的二进制最小堆的数组表示形式。在堆中找到最大值的最小比较数是_________。

注–此问题为数值类型。
(A) 510
(B) 511
(C) 512
(D) 255答案: (B)
说明:在具有n个元素的Min堆中,有ceil(n / 2)个叶节点。
因此,将有ceil(1023/2)= ceil(511.5)= 512个元素作为外部节点。

现在,通常,要查找最多n个元素,您需要(n-1)个比较。
只需比较前两个,然后选择较大的并与下一个进行比较,选择较大的并与下一个进行比较,依此类推。

因此,我们需要511(= 512 – 1)个最小比较数才能在给定堆中找到最大值。

选项(B)是正确的。
这个问题的测验