代码
public static void heapSort(int arr[]){
for (int i = arr.length/2 -1 ; i >= 0; i--) {
adjustHeap(arr,i,arr.length);
}
System.out.println(Arrays.toString(arr));
for (int i = arr.length-1; i >0 ; i--) {
int temp = arr[i];
arr[i] = arr[0];
arr[0] = temp;
adjustHeap(arr,0,i);
}
}
public static void adjustHeap(int arr[],int i,int length){
int temp = arr[i];
for (int k = i*2+1; k<length ; k=k*2+1) {
if(k+1<length && arr[k]<arr[k+1])
k++;
if(arr[k] > temp){
arr[i] = arr[k];
i = k;
}
else {
break;
}
}
arr[i] = temp;
}