Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.03 KB | None | 0 0
  1. // liczenie czasu dla podanego algorytmu.
  2. #include <iostream>
  3. #include <fstream>
  4.  
  5. using namespace std;
  6.  
  7. void sort(int tablica[], int size )
  8. {
  9.     for( int i = 0; i < size; i++ )
  10.     {
  11.         for( int j = 0; j < size - 1; j++ )
  12.         {
  13.             if( tablica[ j ] > tablica[ j + 1 ] )
  14.                 swap( tablica[ j ], tablica[ j + 1 ] );
  15.  
  16.         }
  17.     }
  18. }
  19.  
  20. int main()
  21. {
  22.     int rozmiar;
  23.  
  24.     cout << "Wprowadz rozmiar tablicy." << endl;
  25.     cin >> rozmiar;
  26.  
  27.     int *tab = new int[rozmiar];
  28.  
  29.     ifstream plik("/Users/pawel_rudnicki/Desktop/Dev/algo6/cmake-build-debug/zbior10.txt");
  30.  
  31.     for(int i=0; i<rozmiar; i++)
  32.     {
  33.         plik >> tab[i];
  34.     }
  35.  
  36.     clock_t start = clock();
  37.  
  38.     sort(tab,rozmiar);
  39.  
  40.     clock_t end = clock();
  41.  
  42.     cout << "Czas wykonywania algorytmu bubble sort wynosi: " << (end-start) << endl;
  43.  
  44.     return 0;
  45. }
  46. //Losowanie zmiennych do pliku wraz z podaniem opcji tzn. optymistyczny, losowy, bΔ…dΕΊ pesymistyczny.
  47. #include <iostream>
  48. #include <fstream>
  49. #include <ctime>
  50.  
  51. using namespace std;
  52.  
  53.  
  54. int main()
  55. {
  56.     srand(time(NULL));
  57.     int rozmiar;
  58.     string odpowiedz;
  59.     ofstream plik1("zbior1.txt"),plik2("zbior2.txt"),plik3("zbior3.txt"),
  60.             plik4("zbior4.txt"),plik5("zbior5.txt"),plik6("zbior6.txt"),plik7("zbior7.txt"),
  61.             plik8("zbior8.txt"),plik9("zbior8.txt"),plik10("zbior10.txt");
  62.  
  63.     cout << "Ile liczb chcesz wprowadzic do pliku...?" << endl;
  64.     cin >> rozmiar;
  65.  
  66.     int *tab = new int[rozmiar];
  67.  
  68.     cout << "Jaki charakter zbioru chcesz wygenerowac?" << endl;
  69.     cin >> odpowiedz;
  70.  
  71.     if(odpowiedz == "los")
  72.     {
  73.         for (int i = 0; i < rozmiar; i++)
  74.         {
  75.             tab[i] = rand() % 101;
  76.         }
  77.     }
  78.  
  79.     if(odpowiedz == "opt")
  80.     {
  81.         for(int i=0; i< rozmiar; i++)
  82.         {
  83.             if(i%2 == 0)
  84.             {
  85.                 tab[i] = i;
  86.             }
  87.             else
  88.             {
  89.                 tab[i] = rand() % 101;
  90.             }
  91.         }
  92.     }
  93.  
  94.     if(odpowiedz == "pes")
  95.     {
  96.         for(int i = 0; i < rozmiar; i++)
  97.         {
  98.             tab[i] = 1000-i;
  99.         }
  100.     }
  101.  
  102.     cout << "Zapisuje do pliku..." << endl;
  103.  
  104.         if(rozmiar == 10)
  105.         {
  106.             for(int i = 0; i<rozmiar; i++) {
  107.                 plik1 << tab[i] << " ";
  108.             }
  109.             plik1.close();
  110.         }
  111.  
  112.         else if(rozmiar == 20)
  113.         {
  114.             for(int i = 0; i<rozmiar; i++) {
  115.                 plik2 << tab[i] << " ";
  116.             }
  117.             plik2.close();
  118.         }
  119.         else if(rozmiar == 30)
  120.         {
  121.             for(int i = 0; i<rozmiar; i++) {
  122.                 plik3 << tab[i] << " ";
  123.             }
  124.             plik3.close();
  125.         }
  126.         else if(rozmiar == 50)
  127.         {
  128.             for(int i = 0; i<rozmiar; i++) {
  129.                 plik4 << tab[i] << " ";
  130.             }
  131.             plik4.close();
  132.         }
  133.         else if(rozmiar == 75)
  134.         {
  135.             for(int i = 0; i<rozmiar; i++) {
  136.                 plik5 << tab[i] << " ";
  137.             }
  138.             plik5.close();
  139.         }
  140.         else if(rozmiar == 100)
  141.         {
  142.             for(int i = 0; i<rozmiar; i++) {
  143.                 plik6 << tab[i] << " ";
  144.             }
  145.             plik6.close();
  146.         }
  147.         else if(rozmiar == 200)
  148.         {
  149.             for(int i = 0; i<rozmiar; i++) {
  150.                 plik7 << tab[i] << " ";
  151.             }
  152.             plik7.close();
  153.         }
  154.         else if(rozmiar == 300)
  155.         {
  156.             for(int i = 0; i<rozmiar; i++) {
  157.                 plik8 << tab[i] << " ";
  158.             }
  159.             plik8.close();
  160.         }
  161.         else if(rozmiar == 400)
  162.         {
  163.             for(int i = 0; i<rozmiar; i++) {
  164.                 plik9 << tab[i] << " ";
  165.             }
  166.             plik9.close();
  167.         }
  168.         else if(rozmiar == 500)
  169.         {
  170.             for(int i = 0; i<rozmiar; i++) {
  171.                 plik10 << tab[i] << " ";
  172.             }
  173.             plik10.close();
  174.         }
  175.     return 0;
  176. }
  177.  
  178. //Algorytm Hooraaa tj. Lab 09
  179. #include <stdio.h>
  180. #include <iostream>
  181.  
  182. using namespace std;
  183.  
  184. int n,i,j,k,w;
  185. int c[100];
  186.  
  187.  
  188. int partition(int c[100], int a, int b)
  189. {
  190.     int e,indeks;
  191.     e=c[a];        //elemennt dzielacy
  192.     while (a<b)
  193.     {
  194.         while ((a<b) && (c[b]>=e)) b--;
  195.         while ((a<b) && (c[a]<e)) a++;
  196.         if (a<b)
  197.         {
  198.             indeks=c[a];
  199.             c[a]=c[b];
  200.             c[b]=indeks;
  201.         }
  202.     }
  203.     return a;
  204. }
  205.  
  206.  
  207. int main()
  208. {
  209.     cout << "Podaj liczbe elementow ciagu " << endl;
  210.     cin >> n;
  211.     for (i=0; i<n; i++)
  212.     {
  213.         cout << "Podaj " << i+1 << " element ciagu" << endl;
  214.         cin >> c[i];
  215.     }
  216.     cout << "Ktory element obliczyc?" << endl;
  217.     cin >> w;
  218.  
  219. //algorytm Hoare'a
  220.     i=0;
  221.     j=n-1;
  222.     n=w;
  223.     while (i!=j)
  224.     {
  225.         k=partition(c,i,j);
  226.         k=k-i+1;
  227.         if (k>=w) j=i+k-1;
  228.         if (k<w)
  229.         {
  230.             w-=k;
  231.             i+=k;
  232.         }
  233.     }
  234.     cout << n << " element ciagu to " << c[i] << endl;
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement