堆的时间复杂度

1、堆排序的时间复杂度为O(nlogn)

2、对N个元素建堆的时间复杂度为O(N),删除堆顶元素的时间复杂度为O(logN),因此删除堆所有元素的时间复杂度为O(NlogN)。

3、不管数组初始时是有序的还是逆序的,堆排序都会先建堆,变成了堆序的性质。从这点上分析,堆排序是一个非常稳定的算法。总而言之,建堆的时间复杂度为O(n),调整堆的时间复杂度为O(logn),其中调用了n-1次,因此堆排序的时间复杂度为O(n)+O(nlogn) ~ O(nlogn)

堆的时间复杂度_第1张图片

你可能感兴趣的:(算法刷题-堆,算法,数据结构)