SHARE
TWEET

Untitled

a guest Apr 21st, 2017 47 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. int ile;
  8. clock_t start,stop;
  9. double czas;
  10.  
  11. void sortowanie_babelkowe(int *tab, int n)
  12. {
  13.     for(int i=1;i<n;i++)
  14.     {
  15.         for(int j=n-1; j>=1; j--)
  16.         {
  17.             if(tab[j]<tab[j-1])
  18.             {
  19.                 int bufor;
  20.                 bufor=tab[j-1];
  21.                 tab[j-1]=tab[j];
  22.                 tab[j]=bufor;
  23.             }
  24.         }
  25.     }
  26. }
  27.  
  28. void quick_sort(int *tablica, int lewy, int prawy)
  29. {
  30.     int v=tablica[(lewy+prawy)/2];  //obrana os
  31.     int i,j,x;
  32.     i=lewy;
  33.     j=prawy;
  34.     do {
  35.         while(tablica[i]<v) i++;
  36.         while(tablica[j]>v) j--;
  37.         if (i<=j)
  38.         {
  39.             x=tablica[i];   //pomocnicza
  40.             tablica[i]=tablica[j];
  41.             tablica[j]=x;
  42.             i++; j--;
  43.         }
  44.     } while(i<=j);
  45.  
  46.     if(j>prawy) quick_sort(tablica,lewy,j);
  47.     if(i<prawy) quick_sort(tablica,i,prawy);
  48. }
  49.  
  50. int main()
  51. {
  52.     cout << "Potownanie czasow sortowania v.1" << endl;
  53.     cout << "Ile losowych liczb w tablicy?" << endl;
  54.     cin>>ile;
  55.  
  56.  
  57.     //dynamiczna alokacja tablicy
  58.     int *tablica;
  59.     tablica=new int[ile];
  60.  
  61.     int *tablica2;
  62.     tablica2=new int[ile];
  63.  
  64.     //inicjowanie generatora
  65.     srand(time(NULL));
  66.  
  67.     //wczytywanie losowych liczb do tablicy
  68.  
  69.     for (int i=0; i<ile; i++)
  70.     {
  71.         tablica[i] = rand()%100000+1;
  72.     }
  73.  
  74.     //duplikat tablica do tablica2
  75.     for (int i=0; i<ile; i++)
  76.     {
  77.         tablica2[i]=tablica[i];
  78.     }
  79.  
  80.     cout<<"Sortuje teraz babelkowo, prosze czekac!" <<endl;
  81.     start = clock();
  82.     sortowanie_babelkowe(tablica,ile);
  83.     stop = clock();
  84.     czas = (double)(stop-start) / CLOCKS_PER_SEC;
  85.  
  86.     cout<<endl<<"Czas sortowania babelkowego: "<<czas<<" s"<<endl<<endl;
  87.  
  88.     cout<<"Sortuje teraz quicksort, prosze czekac!" <<endl;
  89.     start = clock();
  90.     quick_sort(tablica2,0, ile-1);
  91.     stop = clock();
  92.     czas = (double)(stop-start) / CLOCKS_PER_SEC;
  93.  
  94.     cout<<endl<<"Czas sortowania quicksort: "<<czas<<" s"<<endl;
  95.  
  96.  
  97.     delete [] tablica;
  98.     delete [] tablica2;
  99.     return 0;
  100. }
RAW Paste Data
Top