From 6b7b911c85c8043641ac3631045c7af0908e8c84 Mon Sep 17 00:00:00 2001 From: jyotishman1207 <56396615+jyotishman1207@users.noreply.github.com> Date: Thu, 17 Oct 2019 20:00:31 +0530 Subject: [PATCH] Create Heap_Sort.java New Code --- Sorting/Heap_Sort.java | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Sorting/Heap_Sort.java diff --git a/Sorting/Heap_Sort.java b/Sorting/Heap_Sort.java new file mode 100644 index 0000000..0f4124b --- /dev/null +++ b/Sorting/Heap_Sort.java @@ -0,0 +1,52 @@ +public class HeapSort +{ + public void sort(int arr[]) + { + int n = arr.length; + for (int i = n / 2 - 1; i >= 0; i--) + heapify(arr, n, i); + for (int i=n-1; i>=0; i--) + { + int temp = arr[0]; + arr[0] = arr[i]; + arr[i] = temp; + heapify(arr, i, 0); + } + } + void heapify(int arr[], int n, int i) + { + int largest = i; + int l = 2*i + 1; + int r = 2*i + 2; + if (l < n && arr[l] > arr[largest]) + largest = l; + if (r < n && arr[r] > arr[largest]) + largest = r; + if (largest != i) + { + int swap = arr[i]; + arr[i] = arr[largest]; + arr[largest] = swap; + heapify(arr, n, largest); + } + } + + static void printArray(int arr[]) + { + int n = arr.length; + for (int i=0; i