Advertisement
SabirSazzad

Heap Sort

Feb 26th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void MaxHeapfy(int Arr[],int last);
  5. void HeapSort(int Arr[], int last);
  6. void print(int Arr[], int last);
  7.  
  8. int main()
  9. {
  10.     int i,last;
  11.     cout << "Input Array Size: ";
  12.     cin >> last;
  13.     int Arr[last];
  14.     cout << "Input Array Elements..." <<endl;
  15.     for(i=0;i<last;i++)
  16.     {
  17.         cin >> Arr[i];
  18.     }
  19.     HeapSort(Arr,last);
  20.     print(Arr,last);
  21.     return 0;
  22. }
  23.  
  24. void HeapSort(int Arr[], int last)
  25. {
  26.     int x=last;
  27.     for(int i=0;i<x-1;i++)
  28.     {
  29.         MaxHeapfy(Arr,last);
  30.         swap(Arr[0],Arr[last-1]);
  31.         last--;
  32.     }
  33. }
  34. void MaxHeapfy(int Arr[],int last)
  35. {
  36.     int parent,child1,child2;
  37.     parent = (last-2)/2;
  38.     for(int i=parent;i>=0;i--)
  39.     {
  40.         child1 = 2*i+1;
  41.         child2 = 2*i+2;
  42.         if(Arr[child1] > Arr[i])
  43.         {
  44.             swap(Arr[child1],Arr[i]);
  45.         }
  46.         if(Arr[child2] > Arr[i] && child2<last)
  47.         {
  48.             swap(Arr[child2],Arr[i]);
  49.         }
  50.     }
  51. }
  52. void print(int Arr[],int last)
  53. {
  54.     for(int i=0;i<last;i++)
  55.     {
  56.         cout << Arr[i] << " ";
  57.     }
  58.     cout <<endl;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement