Advertisement
StoneHaos

1

Nov 28th, 2021
898
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. using namespace std;
  7.  
  8. void stroyPiramida(int *data, int n){
  9.     for (int i=n/2;i>=0;i--) {
  10.         if (2*i<n) if (data[i]<data[2*i]) swap(data[i],data[2*i]);
  11.         if (2*i+1<n) if (data[i]<data[2*i+1]) swap(data[i],data[2*i+1]);
  12.     }
  13. }
  14.  
  15. void sortPiramida(int *data, int n) {
  16.     while (n > 1) {
  17.         stroyPiramida(data, n);
  18.         n--;
  19.         swap(data[n], data[0]);
  20.     }
  21. }
  22.  
  23. int main() {
  24.     srand(time(NULL));
  25.  
  26.     int n;
  27.     cin >> n;
  28.     int *data = new int[n];
  29.     for (int i = 0; i < n; i++) data[i] = rand() % 50;
  30.     for (int i = 0; i < n; i++) cout << data[i] << " ";
  31.     cout << endl;
  32.     sortPiramida(data, n);
  33.     for (int i = 0; i < n; i++) cout << data[i] << " ";
  34.     cout << endl;
  35.     delete [] data;
  36.     return 0;
  37.  
  38. }
  39.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement