package iYou.neugle.sort; public class Heap_sort {
public static void HeapSort(double[] array) {
for (int i = (int) Math.floor(array.length / 2); i > 0; i--) {
HeapBuild(array, i, array.length);
} for (int i = array.length - 1; i > 0; i--) {
double temp = array[0];
array[0] = array[i];
array[i] = temp; HeapBuild(array, 0, i);
}
} public static void HeapBuild(double[] array, int parent, int length) {
double temp = array[parent];
int child = parent * 2 + 1;
while (child < length) {
if (child + 1 < length && array[child + 1] > array[child]) {
child++;
}
if (temp >= array[child]) {
break;
} array[parent] = array[child]; parent = child;
child = parent * 2 + 1;
}
array[parent] = temp;
}
}