问题 填空题

根据以上C代码,函数heapMaximum、heapExtractMax和maxHeapInsert的时间复杂度的紧致上界分别为 (6) (7) (8) (用O符号表示)。

答案

参考答案:O(lgn)

解析:本题考查算法设计与分析以及C程序设计语言的相关知识。
本问题考查算法的时间复杂度。
根据上述C代码,函数heapMaximum返回数组A的第1个元素,因此为常数时间即O(1)。
函数heapExtractMax首先将数组A的第1个元素的值放到变量max中,然后将最后一个元素提到堆顶,最后再进行堆的调整,因此该时间复杂度实际上是调整堆的时间复杂度,即O(lgn)。
函数maxHeapInsert将一个元素key插入到堆A中,具体的过程为先将堆的规模增加1,然后将元素插入到堆的最后一个位置,最后自下而上调整该元素,其时间复杂度为堆(二叉树)的高度,即O(lgn)。

填空题
多项选择题