rootuss

zlozonosc

Feb 24th, 2017
196
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <time.h>
  3. #include <windows.h>
  4.  
  5. using namespace std;
  6.  
  7. void sortowanie_babelkowe(int tab[], int n)
  8. {
  9.     for (int i = 1; i<n; i++)
  10.     {
  11.         for (int j = n - 1; j >= 1; j--)
  12.         {
  13.             if (tab[j]<tab[j - 1])
  14.             {
  15.                 int bufor;
  16.                 bufor = tab[j - 1];
  17.                 tab[j - 1] = tab[j];
  18.                 tab[j] = bufor;
  19.             }
  20.         }
  21.     }
  22. }
  23.  
  24. void quicksort(int tablica[], int lewy, int prawy)
  25. {
  26.     int v = tablica[(lewy + prawy) / 2];
  27.     int i, j, x;
  28.     i = lewy;
  29.     j = prawy;
  30.     do
  31.     {
  32.         while (tablica[i]<v) i++;
  33.         while (tablica[j]>v) j--;
  34.         if (i <= j)
  35.         {
  36.             x = tablica[i];
  37.             tablica[i] = tablica[j];
  38.             tablica[j] = x;
  39.             i++;
  40.             j--;
  41.         }
  42.     } while (i <= j);
  43.     if (j>lewy) quicksort(tablica, lewy, j);
  44.     if (i<prawy) quicksort(tablica, i, prawy);
  45. }
  46.  
  47. int main()
  48. {
  49.     srand(time(NULL));
  50.     const int ile = 100000;
  51.     clock_t start, stop;
  52.     double czas;
  53.  
  54.     int tablica[ile];
  55.     int tablica2[ile];
  56.  
  57.    
  58.     for (int i = 0; i<ile; i++)
  59.     {
  60.         tablica[i] = rand() % 100000 + 1;
  61.     }
  62.     for (int i = 0; i<ile; i++)
  63.     {
  64.         tablica2[i] = tablica[i];
  65.     }
  66.  
  67.     cout << "Sortuje teraz babelkowo" << endl;
  68.     start = clock();
  69.     sortowanie_babelkowe(tablica, ile);
  70.     stop = clock();
  71.     czas = (double)(stop - start) / CLOCKS_PER_SEC;
  72.     cout << endl << "Czas sortowania babelkowego: " << czas << " s" << endl;
  73.  
  74.     cout << endl << "Sortuje teraz algorytmem quicksort" << endl;
  75.     start = clock();
  76.     quicksort(tablica2, 0, ile - 1);
  77.     stop = clock();
  78.     czas = (double)(stop - start) / CLOCKS_PER_SEC;
  79.     cout << endl << "Czas sortowania quicksort: " << czas << " s" << endl;
  80.  
  81.     int x;
  82.     cin >> x;
  83.  
  84.     return 0;
  85. }
RAW Paste Data