Advertisement
molendzik

26-02-2018

Feb 5th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.28 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cstdlib>
  4. #include <fstream>
  5. #define xD xD
  6. using namespace std;
  7.  
  8. //Zadanie 1.
  9.  
  10. void SortowaniePrzezWstawianie (int tab[], int rozmiar)
  11. {
  12.     int mujstary, j;   // Zmienna mujstary slu¿y do przechowywania zmiennej, która jest aktualnie wstawiana (tzw. zmienna tymczasowa). Mam nadzieje, ze tym razem nie bedzie mial Pan problemu ze zrozumieniem znaczenia tej zmiennej. xD
  13.  
  14.     for (int i=1; i<rozmiar; i++)
  15.     {
  16.         mujstary=tab[i];
  17.  
  18.         for(j=i-1; j>=0 && tab[j]>mujstary; j--)
  19.              tab[j+1]=tab[j];
  20.  
  21.         tab[j+1] = mujstary;
  22.     }
  23. }
  24.  
  25. //Zadanie 2.
  26.  
  27. void SortowaniePrzezWybor (int tab[], int rozmiar)
  28. {
  29.     int mujstary, j;
  30.     for (int i=0; i<rozmiar; i++)
  31.     {
  32.         mujstary=i;
  33.         for (j=mujstary; j<rozmiar; j++)
  34.         {
  35.             if (tab[j]>tab[mujstary])
  36.             {
  37.                 mujstary=j;
  38.             }
  39.         }
  40.         swap (tab[i], tab[mujstary]);
  41.     }
  42. }
  43.  
  44. //Zadanie 3.
  45.  
  46. void  SortowanieSzybkie (int poczatek, int koniec, int tab[], int rozmiar)  //poczatek = zawsze = 0; koniec = rozmiar-1
  47. {
  48.  
  49.     int i = poczatek , j = koniec;
  50.     int pivot = tab[(poczatek + koniec) / 2];
  51.  
  52.     while (i <= j)
  53.     {
  54.         while (tab[i] < pivot)
  55.         {
  56.  
  57.                   i++;
  58.         }
  59.             while (tab[j] > pivot)
  60.             {
  61.                   j--;
  62.             }
  63.             if (i <= j)
  64.             {
  65.                   swap(tab[i],tab[j]);
  66.                   i++;
  67.                   j--;
  68.             }
  69.       }
  70.  
  71.     if (poczatek < j)
  72.     {
  73.         SortowanieSzybkie(poczatek, j, tab, rozmiar);
  74.     }
  75.     if (i < koniec)
  76.     {
  77.         SortowanieSzybkie(i, koniec, tab, rozmiar);
  78.     }
  79. }
  80.  
  81.  
  82.  
  83. int main()
  84. {
  85.     int r;
  86.     ifstream Tablica;
  87.     Tablica.open("Tablica.txt");  //pierwsza liczba w pliku to wielkosc
  88.     Tablica >> r;
  89.     int tablica[r];
  90.     for (int i=0; i<r; i++)
  91.     {
  92.         Tablica >> tablica[i];
  93.     }
  94.  
  95.  
  96.     SortowanieSzybkie(0, r-1, tablica, r); //<----- Miejsce na wpisanie funkcji. Przyklad uzycia jest podany.
  97.  
  98.     ofstream wynik;
  99.     wynik.open("Wynik.txt", ios::trunc);
  100.     for(int i=0; i<r; i++)
  101.     {
  102.         cout<<tablica[i]<<endl;
  103.         wynik << tablica[i];
  104.         wynik << " ";
  105.     }
  106.  
  107.     return 0;
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement