Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void HeapSort(int number[], int n);
  5. void MaxHeap(int number[], int n, int i);
  6. void Print(int number[], int n);
  7.  
  8. int main()
  9. {
  10. int n, i;
  11. cout<<"Enter the number of data element to be sorted: ";
  12. cin>>n;
  13.  
  14. int data[n];
  15. for(i = 0; i < n; i++)
  16. {
  17. cout<<"Enter element "<<i+1<<": ";
  18. cin>>data[i];
  19. }
  20.  
  21. cout<<endl<<"BEFORE SORTED : ";
  22. Print(data, n);
  23.  
  24. HeapSort(data, n);
  25.  
  26. cout<<"AFTER SORTED : ";
  27. Print(data, n);
  28. return 0;
  29. }
  30.  
  31. void MaxHeap(int number[], int n, int i)
  32. {
  33. int t;
  34. int largest = i;
  35. int l = 2*i + 1;
  36. int r = 2*i + 2;
  37.  
  38. if (l < n && number[l] > number[largest])
  39. {
  40. largest = l;
  41. }
  42.  
  43. if (r < n && number[r] > number[largest])
  44. {
  45. largest = r;
  46. }
  47.  
  48. if (largest != i)
  49. {
  50. t = number[i];
  51. number[i] = number[largest];
  52. number[largest] = t;
  53.  
  54. MaxHeap(number, n, largest);
  55. }
  56. }
  57.  
  58. void HeapSort(int number[], int n)
  59. {
  60. int t;
  61.  
  62. for (int i = n / 2 - 1; i >= 0; i--)
  63. {
  64. MaxHeap(number, n, i);
  65. }
  66.  
  67. for (int i=n-1; i>=0; i--)
  68. {
  69. t = number[0];
  70. number[0] = number[i];
  71. number[i] = t;
  72.  
  73. MaxHeap(number, i, 0);
  74. }
  75. }
  76.  
  77. void Print(int number[], int n)
  78. {
  79. for (int i=0; i<n; ++i)
  80. {
  81. cout << number[i] << " ";
  82. }
  83. cout <<endl;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement