时间复杂度 分成初始化堆和取出最大/小元素后修改堆两个过程看 建堆过程O(n)取出最大/小元素后修改堆 O ( n log n ) O(n \log n) O(nlogn) 总的来讲,堆的时间复杂度为 O ( n log n ) O(n \log n) O(nlogn) 空间复杂度 直接对现有的数据结构进行排序,因此是 O ( 1 ) O(1) O(1) 参考 排序算法之 堆排序 及其时间复杂度和空间复杂度 (带有详细推导)