Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void Hoanvi(int &a, int &b)
  5. {
  6.     int c = a;
  7.     a = b;
  8.     b = c;
  9. }
  10.  
  11. void Heapify(int a[], int n, int i)
  12. {
  13.     while (i <= n/2 - 1)
  14.     {
  15.         int left = 2 * i + 1;
  16.         int right = 2 * i + 2;
  17.  
  18.         int min = left;
  19.  
  20.         if (right < n && a[right] < a[min])
  21.         {
  22.             min = right;
  23.         }
  24.  
  25.         if (a[i] > a[min])
  26.         {
  27.             Hoanvi(a[i], a[min]);
  28.         }
  29.         i = min;
  30.     }
  31. }
  32.  
  33. void Buildheap(int a[], int n)
  34. {
  35.     for (int i = n/2 - 1; i >= 0; i--)
  36.     {
  37.         Heapify(a, n, i);
  38.     }
  39. }
  40.  
  41. void Heapsort(int a[], int n)
  42. {
  43.     Buildheap(a, n);
  44.     for (int i = n-1; i >=0; i--)
  45.     {
  46.         Hoanvi(a[i], a[0]);
  47.         Heapify(a, i, 0);
  48.     }
  49. }
  50.  
  51. void Xuatmang(int a[], long n)
  52. {
  53.     for (long i = 0; i < n; i++)
  54.     {
  55.         cout << a[i] << "     ";
  56.     }
  57. }
  58.  
  59. int Nhap(int *a, long &n,int ptuthem)
  60. {
  61.     if (n >= 100000)
  62.         return 0;
  63.     else if(n==0)
  64.     {
  65.         a[0] = ptuthem;
  66.         n++;
  67.         return 0;
  68.     }
  69.     else
  70.     {
  71.         a[n] = ptuthem;
  72.         n++;
  73.         return 0;
  74.     }
  75.  
  76. }
  77.  
  78. int main()
  79. {
  80.     long n = 0;
  81.     int *a = new int[0];
  82.     int x;
  83.     while (1)
  84.     {
  85.         cin >> x;
  86.         Nhap(a, n, x);
  87.         if (x == -2)
  88.             break;
  89.     }
  90.     Xuatmang(a, n-1);
  91.     delete[]a;
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement