Guest User

Untitled

a guest
Jul 19th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.60 KB | None | 0 0
  1. #include<iostream>
  2. #include <algorithm>
  3. #include<ctime>
  4. using namespace std;
  5.  
  6. void buble(int *tab,int n) //sorotwanie babelkowe funkcja dostaje tablice przez wskaznik i jej rozmiar
  7. {
  8.     int tmp; // zmienna pomocniczka do zamiany kolejnosci
  9.     for(int i=0; i<n-1; i++) //blblalblbablabl reszta jebnaych komentarzy
  10.     {
  11.         for(int j=0; j<n-1-i; j++)
  12.         {
  13.             if( tab[j] > tab[j+1])
  14.             {
  15.                 tmp = tab[j];
  16.                 tab[j] = tab[j+1];
  17.                 tab[j+1] = tmp;
  18.  
  19.             }
  20.         }
  21.     }
  22. }
  23. void insert(int *tab, int n)
  24. {
  25.     int tmp;
  26.     for(int i = 1,j ; i<n; i++)
  27.     {
  28.         tmp = tab[i];
  29.         for( j = i - 1; j >=0 && tmp <tab[j]; --j)
  30.             tab[j+1] = tab[j];
  31.         tab[j + 1] = tmp;
  32.     }
  33. }
  34. void heapify(int *T,int n, int i)
  35. {
  36.     int l,r;
  37.     l = 2*i;
  38.     r = 2*i+1;
  39.     int largest = i;
  40.     if( (l<=n) && (T[l] > T[i]) )
  41.         largest = l;
  42.     if( (r<=n) && (T[r] > T[largest]) )
  43.         largest = r;
  44.  
  45.     if(largest != i)
  46.     {
  47.         swap(T[i], T[largest]);
  48.         heapify(T,n,largest);
  49.     }
  50. }
  51. void BuildHeap(int *T, int n)
  52. {
  53.     for( int i=n/2; i>=0; --i)
  54.         heapify(T, n, i);
  55. }
  56. void HeapSort(int *T, int n)
  57. {
  58.     BuildHeap(T, n);
  59.         for(int i=n-1; i>0; --i)
  60.         {
  61.             swap(T[0], T[i]); //element przenisimy na koniec
  62.             heapify(T, --n, 1); //przywracamy wlasnosc dla kopca mniejszego
  63.         }
  64. }
  65. int main()
  66. {
  67.     const int S = 10;
  68.     int tab[S];
  69.     srand(static_cast<unsigned int>(time(NULL)));
  70.     for(int i=0; i<S; i++)
  71.         tab[i] = rand()%10;
  72.  
  73.     cout << "tablica nieposotowana: " << endl;
  74.     for(int i=0; i<S; i++)
  75.         cout << tab[i] << "   ";
  76.     cout << endl;
  77.  
  78.     HeapSort(tab, S);
  79.  
  80.     cout << "tablica posortowana: " << endl;
  81.     for(int i=0; i<S; i++)
  82.         cout << tab[i] << "   ";
  83.     return 0;
  84. }
Add Comment
Please, Sign In to add comment