请考虑以下语句:
- 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)是正确的。
这个问题的测验