堆排序的原理:用數組元素構建堆。每次調用堆的add函數時,堆都會將堆中最大的元素調整到堆的頭節點處。
添加完畢,然後調用remove函數,每次刪除和返回的都是當前堆中的最大數值。
public static void heapSort(int[] lists){
Heap<Integer> heap=new Heap<Integer>();
for(int i=0;i<lists.length;i++)
heap.add(lists[i]);
System.out.println("建立堆完成,目前堆大小爲"+heap.Size());
for(int i=lists.length-1;i>=0;i--){
lists[i]=heap.remove();
}
}