Advertisement
rootuss

Krzysiu bombelki ver2

Feb 16th, 2017
488
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.05 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <conio.h>
  4. #include <ctime>
  5.  
  6. using namespace std;
  7.  
  8. void wpisz      (int T[], int n);
  9. void wypisz     (int T[], int n);
  10. void bombelki   (int T[], int n);
  11. void zliczanie  (int T[], int n);
  12. void przezwybor (int T[], int n);
  13. void wstawianie (int T[], int n);
  14.  
  15. int main()
  16. {
  17. char kolejne='t';
  18.  
  19.     string haslo="delta";
  20.     cout<<"Podaj haslo: ";
  21.     string podane;
  22.     cin>>podane;
  23.  
  24.     if(podane==haslo) cout<<"masz dostep"<<endl;
  25.     else cout<<"Bledne haslo"<<endl;
  26.  
  27.     while(podane!=haslo)
  28.     {
  29.         cout<<"Podaj poprawne haslo!"<<endl;
  30.         cin>>podane;
  31.  
  32.     }
  33.  
  34. do
  35. {
  36.     int n;
  37.     cout<<"Podaj ilosc elementow tablicy: ";
  38.     cin>>n;
  39.  
  40.     int T[n];
  41.     wpisz(T,n);
  42.    // wypisz(T,n);
  43.  
  44.     cout<<endl<<endl<<endl;
  45.     cout<<"-------MENU--GLOWNE-------"<<endl;
  46.     cout<<"--------------------------"<<endl;
  47.     cout<<"1. Sortowanie babelkowe."<<endl;
  48.     cout<<"2. Sortowanie przez wstawianie."<<endl;
  49.     cout<<"3. Sortowanie przez wybor."<<endl;
  50.     cout<<"4. Sortowanie przez zliczanie."<<endl;
  51.     cout<<"5. Wyjscie"<<endl;
  52.     cout<<"--------------------------"<<endl;
  53.  
  54.     char wybor;
  55.     wybor=getch();
  56.     cout<<"Wybrano opcje: "<<wybor<<endl<<endl;
  57.  
  58.     cout<<endl;
  59.  
  60.     switch (wybor)
  61.     {
  62.         case '1':
  63.         {
  64.             cout<<"Sortowanie babelkowe:"<<endl<<endl;
  65.             double start=clock();
  66.  
  67.             bombelki(T,n);
  68.  
  69.             double stop=clock();
  70.             double wynik= (stop-start)/CLOCKS_PER_SEC;
  71.             cout<<"Sortowanie trwalo: "<<wynik<<endl;
  72.             //wypisz(T,n);
  73.             break;
  74.         }
  75.  
  76.         case '2':
  77.         {
  78.             cout<<"Sortowanie przez wstawianie."<<endl;
  79.             double start=clock();
  80.             wstawianie(T,n);
  81.             double stop=clock();
  82.             double wynik= (stop-start)/CLOCKS_PER_SEC;
  83.             cout<<"Sortowanie trwalo: "<<wynik<<endl;
  84.            // wypisz(T,n);
  85.             break;
  86.         }
  87.  
  88.         case '3':
  89.         {
  90.             cout<<"Sortowanie przez wybor."<<endl;
  91.             double start=clock();
  92.             przezwybor (T,n);
  93.             double stop=clock();
  94.             double wynik= (stop-start)/CLOCKS_PER_SEC;
  95.             cout<<"Sortowanie trwalo: "<<wynik<<endl;
  96.             //wypisz(T,n);
  97.             break;
  98.         }
  99.  
  100.         case '4':
  101.         {
  102.             cout<<"Sortowanie przez zliczanie"<<endl;
  103.             double start=clock();
  104.             zliczanie(T,n);
  105.             double stop=clock();
  106.             double wynik= (stop-start)/CLOCKS_PER_SEC;
  107.             cout<<"Sortowanie trwalo: "<<wynik<<endl;
  108.             //wypisz(T,n);
  109.             break;
  110.         }
  111.  
  112.         case '5':
  113.         {
  114.             cout<<"KONIEC"<<endl<<endl;
  115.             exit(0);
  116.         }
  117.         default:
  118.             cout<<"Brak opcji w menu"<<endl;
  119.     }
  120.  
  121.  
  122.     cout<<"\n \nCzy chesz jeszcze raz?";
  123.     kolejne=getch();
  124.     system("cls");
  125.  
  126. }
  127. while (kolejne=='t');
  128.  
  129. cout<<"KONIEC"<<endl<<endl;
  130.  
  131.  
  132. return 0;
  133.  
  134. }
  135.  
  136.  
  137.  
  138. void wpisz(int tablica[], int n)
  139. {
  140.     srand(time(NULL));
  141.     for (int i=0; i<n; i++)
  142.     {
  143.         int los=rand()%(10);
  144.         tablica[i]=los;
  145.     }
  146. }
  147.  
  148. void wypisz(int tablica[], int n)
  149. {
  150.     cout<<endl<<"TABLICA"<<endl<<endl;
  151.     srand(time(NULL));
  152.     for (int i=0; i<n; i++)
  153.     {
  154.         cout<<tablica[i]<<"   ";
  155.     }
  156. }
  157.  
  158. void bombelki(int T[], int n)
  159. {
  160.     double pom;
  161.     for(int j=n-1; j>0; j--)
  162.         for(int i=0; i<j; i++)
  163.         if(T[i]>T[i+1])
  164.         {
  165.             pom=T[i];
  166.             T[i]=T[i+1];
  167.             T[i+1]=pom;
  168.         }
  169. }
  170.  
  171. void zliczanie (int T[], int n)
  172. {
  173.     int m=10;
  174.     int P[m+1]={0};
  175.     for (int i=0; i<n; i++) P[T[i]]++;
  176.     int k=0;
  177.     for (int i=0; i<m+1; i++)
  178.         for (int j=P[i]; j>=1; j--)
  179.     {
  180.         T[k]=i;
  181.         k++;
  182.     }
  183. }
  184.  
  185. void przezwybor (int T[], int n)        //n - ilość elementów do posortowania
  186. {
  187. int mn_index;                           //zmienna pomocnicza przechowująca indeks komórki
  188.                                         //z minimalną wartością
  189.   for(int i=0;i<n-1;i++)
  190.   {
  191.     mn_index = i;
  192.     for(int j=i+1;j<n;j++)              //pętla wyszukuje najmniejszy element w podzbiorze nieposortowanym
  193.     if(T[j]<T[mn_index])
  194.       mn_index = j;                     //zamiana elementu najmniejszego w podzbiorze z pierwszą pozycją nieposortowaną
  195.   swap(T[i], T[mn_index]);
  196.   }
  197. }
  198.  
  199. void wstawianie( int tab[],int n)
  200. {
  201.      int pom, j;
  202.      for(int i=1; i<n; i++)
  203.      {
  204.                                             //wstawienie elementu w odpowiednie miejsce
  205.              pom = tab[i];                  //ten element będzie wstawiony w odpowiednie miejsce
  206.              j = i-1;
  207.  
  208.                                             //przesuwanie elementów większych od pom
  209.              while(j>=0 && tab[j]>pom)
  210.              {
  211.                     tab[j+1] = tab[j];      //przesuwanie elementów
  212.                     --j;
  213.              }
  214.              tab[j+1] = pom;                //wstawienie pom w odpowiednie miejsce
  215.      }
  216. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement