堆排序的原理:用数组元素构建堆。每次调用堆的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();
}
}