使用 Min Heap - PriorityQueue 来实现。
代码:
public void heapSort(int[] array) {
if (array == null || array.length == 0) {
return;
}
PriorityQueue minHeap = new PriorityQueue<>(array.length);
for (int i = 0; i < array.length; i++) {
minHeap.offer(array[i]);
}
for (int i = 0; i < array.length; i++) {
array[i] = minHeap.poll();
}
}
时间复杂度: Fixed O(n log n)
空间复杂度: O(n)