Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. // A C++ program to convert min Heap to max Heap
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5. void MaxHeapify(int arr[], int i, int n)
  6. {
  7. int l = 2*i + 1;
  8. int r = 2*i + 2;
  9. int largest = i;
  10. if (l < n && arr[l] > arr[i])
  11. largest = l;
  12. if (r < n && arr[r] > arr[largest])
  13. largest = r;
  14. if (largest != i)
  15. {
  16. swap(arr[i], arr[largest]);
  17. MaxHeapify(arr, largest, n);
  18. }
  19. }
  20.  
  21. /*void convertMaxHeap(int arr[], int n)
  22. {
  23. for (int i = (n-2)/2; i >= 0; --i)
  24. MaxHeapify(arr, i, n);
  25. }*/
  26.  
  27. void printArray(int* arr, int size)
  28. {
  29. for (int i = 0; i < size; ++i)
  30. printf("%d ", arr[i]);
  31. }
  32.  
  33.  
  34. int main()
  35. {
  36. // array representing Min Heap
  37. int arr[] = {3, 5, 9, 6, 8, 20, 10, 12, 18, 9};
  38. int n = sizeof(arr)/sizeof(arr[0]);
  39.  
  40. printf("Min Heap array : ");
  41. printArray(arr, n);
  42.  
  43. // convertMaxHeap(arr, n);
  44.  
  45. printf("\nMax Heap array : ");
  46. printArray(arr, n);
  47.  
  48. return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement