O(n)
O(logn)
O(nlogn)
O(n2)
在构建堆的过程中,从完全完全二叉树最下层最右边的非终端结点开始构建,将它与其孩子进行比较和若有必要的互换,对于每个非终端结点来说,其实最多进行两次比较和互换操作,因此整个构建堆的时间复杂度为O(n);在正式排序时,第i次取堆顶需要用O(log i)的时间,需要取(n-1)次堆顶记录,因此重建堆的时间复杂度为O(nlogn),即堆排序的时间复杂度为O(nlogn)。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题