import java.util.Scanner; public class HeapSort { private static int N; public static void sort(int array[]) { max_heapify(array); for (int i = N; i > 0; i--) { swap(array, 0, i); N = N - 1; maxheap(array, 0); } } public static void max_heapify(int array[]) { N = array.length - 1; for (int i = N / 2; i > 0; i--) { // if ((2*i)>N) // i=0; maxheap(array, i); } } public static void maxheap(int arr[], int i) { int left = 2 * i; int right = 2 * i + 1; int max = i; if (left <= N && arr[left] > arr[i]) max = left; if (right <= N && arr[right] > arr[max]) max = right; if (max != i) { swap(arr, i, max); maxheap(arr, max); /* * for (int j=0;j