From 633f8a69c8233d46896917b7430195ab5a2a4a37 Mon Sep 17 00:00:00 2001 From: Dhiraj Bagad <119125750+DHIRAJ44@users.noreply.github.com> Date: Wed, 9 Oct 2024 23:31:40 +0530 Subject: [PATCH] Create Heapsort2024.cpp --- Heapsort2024.cpp | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 Heapsort2024.cpp diff --git a/Heapsort2024.cpp b/Heapsort2024.cpp new file mode 100644 index 00000000..27d13510 --- /dev/null +++ b/Heapsort2024.cpp @@ -0,0 +1,74 @@ + +#include +using namespace std; + + +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) { + 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); + } +} + + +void printArray(int arr[], int n) +{ + for (int i = 0; i < n; ++i) + cout << arr[i] << " "; + cout << "\n"; +} + + +int main() +{ + int arr[] = { 60 ,20 ,40 ,70, 30, 10}; + int n = sizeof(arr) / sizeof(arr[0]); + + for(int i=n/2 -1;i>=0;i--){ + heapify(arr,n,i); +} + +cout << "After heapifying array is \n"; + printArray(arr, n); + + + heapSort(arr, n); + + cout << "Sorted array is \n"; + printArray(arr, n); + +return 0; +} +