public static void exchange(int[] arr, int i, int j) {
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
public static void heafity(int[] arr, int i, int length) {
if (i >= length) {
return;
}
int left = i * 2 + 1;
int right = i * 2 + 2;
int max = i;
if (left < length && arr[left] > arr[max]) {
max = left;
}
if (right < length && arr[right] > arr[max]) {
max = right;
}
if (max != i) {
exchange(arr, max, i);
heafity(arr, max, length);
}
}
建立大顶堆
public static void buildHeap(int[] arr) {
for (int i = arr.length / 2 - 1; i >= 0; i--) {
heafity(arr, i, arr.length);
}
}