From d0b3bfa3f6461e7d8aef9453c2462916b8e36fc1 Mon Sep 17 00:00:00 2001 From: Gagan Date: Thu, 5 Oct 2017 10:21:24 +0530 Subject: [PATCH 1/2] Simple Heap Sorting Technique Using Java Heap sort is a comparison based sorting technique based on Binary Heap data structure --- Misc/heap_sort | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Misc/heap_sort diff --git a/Misc/heap_sort b/Misc/heap_sort new file mode 100644 index 000000000..59d362e54 --- /dev/null +++ b/Misc/heap_sort @@ -0,0 +1,73 @@ +public class HeapSort +{ + public void sort(int arr[]) + { + int n = arr.length; + + // Build heap (rearrange array) + for (int i = n / 2 - 1; i >= 0; i--) + heapify(arr, n, i); + + // One by one extract an element from heap + for (int i=n-1; i>=0; i--) + { + // Move current root to end + int temp = arr[0]; + arr[0] = arr[i]; + arr[i] = temp; + + // call max heapify on the reduced heap + heapify(arr, i, 0); + } + } + + // To heapify a subtree rooted with node i which is + // an index in arr[]. n is size of heap + void heapify(int arr[], int n, int i) + { + int largest = i; // Initialize largest as root + int l = 2*i + 1; // left = 2*i + 1 + int r = 2*i + 2; // right = 2*i + 2 + + // If left child is larger than root + if (l < n && arr[l] > arr[largest]) + largest = l; + + // If right child is larger than largest so far + if (r < n && arr[r] > arr[largest]) + largest = r; + + // If largest is not root + if (largest != i) + { + int swap = arr[i]; + arr[i] = arr[largest]; + arr[largest] = swap; + + // Recursively heapify the affected sub-tree + heapify(arr, n, largest); + } + } + + /* A utility function to print array of size n */ + static void printArray(int arr[]) + { + int n = arr.length; + for (int i=0; i Date: Wed, 25 Oct 2017 18:35:23 +0530 Subject: [PATCH 2/2] Fixed the Filename. Cheers!! --- Misc/{heap_sort => heap_sort.java} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Misc/{heap_sort => heap_sort.java} (100%) diff --git a/Misc/heap_sort b/Misc/heap_sort.java similarity index 100% rename from Misc/heap_sort rename to Misc/heap_sort.java