📜  门| GATE CS 2019 |简体中文第49章

📅  最后修改于: 2021-06-29 21:56:19             🧑  作者: Mango

请考虑以下语句:

  • I.最大堆中的最小元素始终位于叶节点。
  • 二。最大堆中的第二大元素始终是根节点的子级。
  • 三,可以从Θ(n)时间的二叉搜索树构造最大堆。
  • IV。可以从Θ(n)时间中的最大堆构造二叉搜索树。

以上哪个陈述是正确的?
(A) II,III和IV
(B)一,二和三
(C)一,三和四
(D)一,二和四答案: (B)
说明:陈述(I)是正确的。在最大堆中,最小元素始终存在于叶节点上。因此,我们需要检查所有叶节点的最小值。最坏情况下的复杂度将是O(n)

12
        /  \
      /      \
    8         7
   / \        / \
 /     \    /     \
2      3   4       5 

语句(II)也是正确的,否则它将不满足max-heap属性。

语句(III)也是正确的,因为构建堆始终需要Θ(n)时间(请参阅:将BST转换为最大堆)。

语句(IV)是错误的,因为从max-heap构造二进制搜索树将花费O(nlogn)时间。

因此,选项(B)是正确的。

这个问题的测验