From 1e44624a5919fbd30acb39256231d4dbaa6884e3 Mon Sep 17 00:00:00 2001 From: lmalshan96 <115359843+lmalshan96@users.noreply.github.com> Date: Mon, 10 Oct 2022 08:58:27 +0530 Subject: [PATCH] Create Heap_sort.cpp --- Heap_sort.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Heap_sort.cpp diff --git a/Heap_sort.cpp b/Heap_sort.cpp new file mode 100644 index 0000000..164c0c6 --- /dev/null +++ b/Heap_sort.cpp @@ -0,0 +1,51 @@ +#include + using namespace std; + + void heapify(int arr[], int N, int i) + { + int largest = i; + int left = 2 * i + 1; + int right = 2 * i + 2; + + if (left < N && arr[left] > arr[largest]) + largest = left; + if (right < N && arr[right] > arr[largest]) + largest = right; + if (largest != i) + { + swap(arr[i], arr[largest]); + heapify(arr, N, largest); + } + } + + void heapSort(int arr[], int N) + { + for (int i = N / 2 - 1; i >= 0; i--) + heapify(arr, N, i); + for (int i = N - 1; i >= 0; i--) + { + swap(arr[0], arr[i]); + heapify(arr, i, 0); + } + } + + int main() + { + int n; + cout << "Enter size of Array: "; + cin >> n; + int arr[n]; + cout << "Enter " << n << " Elements: "; + for (int i = 0; i < n; i++) + { + cin >> arr[i]; + } + cout << "Applying Heap Sort.....\n"; + heapSort(arr, n); + cout << "Sorted...\n"; + for (int i = 0; i < n; i++) + { + cout << arr[i] << " "; + } + return 0; + }