@@ -0,0 +1,1556 @@
+public class HeapSort %0A%7B %0A    public void sort(int arr%5B%5D) %0A    %7B %0A        int n = arr.length; %0A  %0A        %0A        for (int i = n / 2 - 1; i %3E= 0; i--) %0A            heapify(arr, n, i); %0A  %0A        %0A        for (int i=n-1; i%3E0; i--) %0A        %7B %0A             %0A            int temp = arr%5B0%5D; %0A            arr%5B0%5D = arr%5Bi%5D; %0A            arr%5Bi%5D = temp; %0A  %0A            %0A            heapify(arr, i, 0); %0A        %7D %0A    %7D %0A  %0A    %0A    void heapify(int arr%5B%5D, int n, int i) %0A    %7B %0A        int largest = i; // Initialize largest as root %0A        int l = 2*i + 1; // left = 2*i + 1 %0A        int r = 2*i + 2; // right = 2*i + 2 %0A  %0A        %0A        if (l %3C n && arr%5Bl%5D %3E arr%5Blargest%5D) %0A            largest = l; %0A  %0A       %0A        if (r %3C n && arr%5Br%5D %3E arr%5Blargest%5D) %0A            largest = r; %0A  %0A        %0A        if (largest != i) %0A        %7B %0A            int swap = arr%5Bi%5D; %0A            arr%5Bi%5D = arr%5Blargest%5D; %0A            arr%5Blargest%5D = swap; %0A  %0A            %0A            heapify(arr, n, largest); %0A        %7D %0A    %7D %0A  %0A    /* A utility function to print array of size n */%0A    static void printArray(int arr%5B%5D) %0A    %7B %0A        int n = arr.length; %0A        for (int i=0; i%3Cn; ++i) %0A            System.out.print(arr%5Bi%5D+%22 %22); %0A        System.out.println(); %0A    %7D %0A  %0A    // Driver program %0A    public static void main(String args%5B%5D) %0A    %7B %0A        int arr%5B%5D = %7B12, 11, 13, 5, 6, 7%7D; %0A        int n = arr.length; %0A  %0A        HeapSort ob = new HeapSort(); %0A        ob.sort(arr); %0A  %0A        System.out.println(%22Sorted array is%22); %0A        printArray(arr); %0A    %7D %0A%7D %0A

Create HeapSort.java