Advertisement
GamerBhai02

4. Max Heap

Nov 4th, 2024 (edited)
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.90 KB | Source Code | 0 0
  1. https://onlinegdb.com/7D0KCj-Un
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. void maxHeapify(int arr[], int n, int i) {
  5.     int largest = i, left = 2 * i + 1, right = 2 * i + 2;
  6.     if (left < n && arr[left] > arr[largest]) largest = left;
  7.     if (right < n && arr[right] > arr[largest]) largest = right;
  8.     if (largest != i) {
  9.         int temp = arr[i]; arr[i] = arr[largest]; arr[largest] = temp;
  10.         maxHeapify(arr, n, largest);
  11.     }
  12. }
  13. void buildMaxHeap(int arr[], int n) {
  14.     for (int i = n / 2 - 1; i >= 0; i--) maxHeapify(arr, n, i);
  15. }
  16. int main() {
  17.     int n;
  18.     printf("Enter number of elements: ");
  19.     scanf("%d", &n);
  20.     int *arr = malloc(n * sizeof(int));
  21.     printf("Enter elements: ");
  22.     for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
  23.     buildMaxHeap(arr, n);
  24.     printf("Max-heap: ");
  25.     for (int i = 0; i < n; i++) printf("%d ", arr[i]);
  26.     free(arr);
  27.     return 0;
  28. }
Tags: Max Heap
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement