Facebook
From Bitty Cassowary, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 126
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <algorithm>
  4. #include <fstream>
  5. #include <sstream>
  6. #include <ctime>
  7.  
  8.  
  9. using namespace std;
  10. void wyswietl(int *tab, int n)
  11. {
  12.     for (int i = 0; i < n; i++)
  13.         cout << *(tab + i) << endl;
  14. }
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26. void QUICKSORT(int *tablica, int lewy, int prawy,int y)
  27. {
  28.  
  29. if(y ==1 )
  30. {
  31.  
  32.  
  33.     int v=tablica[(lewy+prawy)/2];
  34.     int p=lewy;
  35.     int q=prawy;
  36.     do
  37.     {
  38.         while (tablica[p]<v) p++;
  39.         while (tablica[q]>v) q--;
  40.         if (p<=q)
  41.         {
  42.             swap (tablica[p],tablica[q]);
  43.             p++;
  44.             q--;
  45.         }
  46.     }   while (p<=q);
  47.     if (q>lewy) QUICKSORT(tablica,lewy,q,y);
  48.     if (p<prawy) QUICKSORT(tablica,p,prawy,y);
  49. }
  50.  
  51. if(y ==2)
  52. {
  53.     int v=tablica[(lewy+prawy)/2];
  54.     int p=lewy;
  55.     int q=prawy;
  56.     do
  57.     {
  58.         while (tablica[p]>v) p++;
  59.         while (tablica[q]<v) q--;
  60.         if (p<=q)
  61.         {
  62.             swap (tablica[p],tablica[q]);
  63.             p++;
  64.             q--;
  65.         }
  66.     }   while (p<=q);
  67.     if (q>lewy) QUICKSORT(tablica,lewy,q,y);
  68.     if (p<prawy) QUICKSORT(tablica,p,prawy,y);
  69. }
  70.  
  71. }
  72.  
  73.  
  74.  
  75. int main()
  76. {
  77.  
  78.     setlocale(LC_CTYPE, "Polish");
  79.     int x,n,y,*tab;
  80.     cout<< "Wpisz rozmiar tablicy: \n";
  81.     cin >> n;
  82.  
  83.  
  84.     /*int *tablica = new int[n];
  85.      //student* tab1; //wskaznik na tab1lice, ktorego kazdy element bedzie przechowwyac informacje o jednym studencie
  86.    // int h;
  87.    // wczytywanie(tab1,h); //do tab1licy tab1 zostana wczytane dane studentow
  88.  
  89.     for(int i=0; i <n; i++)
  90.     {
  91.  
  92.         tablica[i] = rand() % 7;
  93.         cout << tablica[i] << "\n";
  94.  
  95.     }*/
  96.     srand(time(nullptr));
  97.  
  98.  
  99.     int *tablica = new int[n];
  100.  
  101.  
  102.     for(int i=0; i<n; i++){
  103.         tablica[i] = rand() % 7;
  104.         cout << tablica[i] << "\n";
  105.     }
  106.  
  107.  
  108.     tab = tablica;
  109.  
  110.     cout<< "Jakie sortowanie chcesz wybrać? \n";
  111.  
  112.     cout << "3: Sortowanie quicksort" << endl;
  113.     cin >>x;
  114.     switch(x)
  115.     {
  116.  
  117.         case 3:
  118.             cout <<"quicksort\n";
  119.             cout<<"Wpisz 1 aby sortować rosnąco lub 2 aby sortować malejąco\n";
  120.             cin>>y;
  121.             switch(y)
  122.             {
  123.                 case 1:
  124.                     cout<<"Rosnąco\n";
  125.                     QUICKSORT(tablica,0,n-1,y);
  126.                     wyswietl(tab,n);
  127.                     break;
  128.                 case 2:
  129.                     cout<<"Malejąco\n";
  130.                   QUICKSORT(tablica,0,n-1,y);
  131.                    wyswietl(tab,n);
  132.                     break;
  133.                 default:
  134.                     cout<<"Wybierz poprawną opcję!\n";
  135.  
  136.             }
  137.  
  138.             break;
  139.         default:
  140.             cout<<"Wybierz opcje!\n";
  141.             break;
  142.  
  143.  
  144.  
  145.  
  146.     }
  147.  
  148.  
  149.       //wyswietlenie wczytanych danych o studentach
  150.  
  151.     return 0;
  152.  
  153. }
  154.