Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <time.h>
  4. #include <windows.h>
  5. #include <fstream>
  6.  
  7. using namespace std;
  8. void sortowanie_babelkowe(int *, int);
  9. void sortowanie_babelkowe_ulepszone(int* , int );
  10. void sortowanie_Przez_Wstawianie(int* tab, int ile)
  11. {
  12.     DWORD t5, t6;
  13.     t5=GetTickCount();
  14.  
  15.   for(int j = ile - 2 ; j >= 0 ; j--)
  16.     {
  17.         int x = tab[j];
  18.         int i = j + 1;
  19.         while((i < ile) && (x > tab[i]))
  20.         {
  21.             tab[i - 1] = tab[i];
  22.             i++;
  23.         }
  24.         tab[i - 1] = x;
  25.     }
  26.     t6=GetTickCount() - t5;
  27.     cout << "\nCzas trwania sortowania : " << t6 << " ms" << endl;
  28.  
  29. }
  30. //void sortowanie_Przez_Wybieranie(int*, int);
  31. //void sortowanie_quicksort (int*,int*,int,int);
  32. int main()
  33. {
  34.     int ile;
  35.     cout << "Ile pseudo losowych liczb w tablicy?: " << endl;
  36.     cin >> ile;
  37.  
  38.     int *tablica;
  39.     tablica = new int[ile];
  40.     int *tablica2;
  41.     tablica2 = new int[ile];
  42.     int *tablica3;
  43.     tablica3 = new int[ile];
  44.     //int *tablica4;
  45.     //tablica4 = new int[ile];
  46.  
  47.     //wylosowanie liczb i zpaisanie ich do tablicy
  48.     srand(time(NULL)); // generator pseudo losowych liczb
  49.     for(int i = 0 ; i < ile; i++)
  50.     {
  51.         tablica[i] = rand()%100+1;
  52.     }
  53.     //przepisanie tablicy do tablicy
  54.     for(int i =0 ; i< ile; i++)
  55.     {
  56.         tablica2[i] = tablica[i];
  57.     }
  58.     for(int i =0 ; i< ile; i++)
  59.     {
  60.         tablica3[i] = tablica[i];
  61.     }
  62.    /* for(int i =0 ; i< ile; i++)
  63.     {
  64.         tablica4[i] = tablica[i];
  65.     }*/
  66.  
  67.   for(int i = 0; i<ile; i++)
  68.   {
  69.       cout << tablica3[i] << endl;
  70.   }
  71.  
  72.   for(int i = 0; i<ile ; i++)
  73.     tablica3[i] = 0;
  74.  
  75.   for(int i = 0; i<ile; i++)
  76.   {
  77.       cout << i << ":" << tablica3[i] << endl;
  78.   }
  79.  
  80.  
  81.   cout << "\n\nSortowanie babelkowe  " << endl;
  82.  
  83.  
  84.     sortowanie_babelkowe(tablica, ile);
  85.     fstream bablekowe;
  86.     bablekowe.open( "babelkowe.txt", ios::out );
  87.     if( bablekowe.good() )
  88.     {
  89.         for (int i = 0; i < ile; i++)
  90.         {
  91.             if (i%10 != 9)
  92.             {
  93.                 bablekowe << tablica[i] << '\t';
  94.             }
  95.             else
  96.             {
  97.                 bablekowe << tablica[i] << endl;
  98.             }
  99.         }
  100.         bablekowe.close();
  101.     }
  102.  
  103. cout << "\n\nSortowanie ulepszone babelkowe  " << endl;
  104.  
  105.  
  106.     sortowanie_babelkowe_ulepszone(tablica2, ile);
  107.     fstream babelkowe_ulepszone;
  108.     babelkowe_ulepszone.open( "babelkowe_ulepszone.txt", ios::out );
  109.     if( babelkowe_ulepszone.good() )
  110.     {
  111.         for (int i = 0; i < ile; i++)
  112.         {
  113.             if (i%10 != 9)
  114.             {
  115.                 babelkowe_ulepszone << tablica2[i] << '\t';
  116.             }
  117.             else
  118.             {
  119.                 babelkowe_ulepszone << tablica2[i] << endl;
  120.             }
  121.         }
  122.         babelkowe_ulepszone.close();
  123.     }
  124.  
  125.  
  126. cout << "\nSortowanie przez wstawianie   " << endl;
  127.  
  128.  
  129.     sortowanie_Przez_Wstawianie(tablica3, ile);
  130.     cout << "\nDEBUG";
  131.     /*fstream wstawianie;
  132.     wstawianie.open( "wstawianie.txt", ios::out );
  133.     if( wstawianie.good() )
  134.     {
  135.         for (int i = 0; i < wielkosc; i++)
  136.         {
  137.             if (i%10 != 9)
  138.             {
  139.                 wstawianie << tab3[i] << '\t';
  140.             }
  141.             else
  142.             {
  143.                 wstawianie << tab3[i] << endl;
  144.             }
  145.         }
  146.         wstawianie.close();
  147.     }*/
  148.  
  149. /* cout << "\n***************************************************    " << endl;
  150.     cout << "\nSortowanie przez wybieranie     " << endl;
  151.  
  152.  
  153.     sortowanie_Przez_Wybieranie(tab4, wielkosc);
  154.  
  155.     fstream wybieranie;
  156.     wybieranie.open( "wybieranie.txt", ios::out );
  157.     if( wybieranie.good() )
  158.     {
  159.         for (int i = 0; i < wielkosc; i++)
  160.         {
  161.             if (i%10 != 9)
  162.             {
  163.                 wybieranie << tab4[i] << '\t';
  164.             }
  165.             else
  166.             {
  167.                 wybieranie << tab4[i] << endl;
  168.             }
  169.         }
  170.          wybieranie.close();
  171.     }*/
  172.  
  173.  
  174. /*cout << "\nQuick Sort   " << endl;
  175.     sortowanie_quicksort(tab3, wielkosc,lewy,prawy);
  176.  
  177.     fstream qsort;
  178.     qsort.open( "qsort.txt", ios::out );
  179.     if( qsort.good() )
  180.     {
  181.         for (int i = 0; i < wielkosc; i++)
  182.         {
  183.             if (i%10 != 9)
  184.             {
  185.                 qsort << tab3[i] << '\t';
  186.             }
  187.             else
  188.             {
  189.                 qsort << tab3[i] << endl;
  190.             }
  191.         }
  192.     }
  193.     qsort.close();
  194. */
  195. cout << "\nDEBUG";
  196.     delete [] tablica;
  197.     cout << "\nUSUNOLEM tab1";
  198.     delete [] tablica2;
  199.     cout << "\nUSUNOLEM tab2";
  200.     delete [] tablica3;
  201.     cout << "\nUSUNOLEM tab3";
  202.   //  delete [] tab4;
  203.     return 0;
  204. }
  205.  
  206.  
  207. void sortowanie_babelkowe(int *tab, int wielkosc)
  208. {
  209.     DWORD t1, t2;
  210.     t1=GetTickCount();
  211.  for(int i = 1; i < wielkosc; i++)
  212.     {
  213.         for(int j = wielkosc - 1; j>=1; j--)
  214.         {
  215.             if(tab[j] < tab[j-1])
  216.             {
  217.                 int a;
  218.                 a = tab[j-1];
  219.                 tab[j-1] = tab[j];
  220.                 tab[j] = a;
  221.             }
  222.         }
  223.     }
  224.     t2=GetTickCount() - t1;
  225.     cout << "\nCzas trwania sortowania : " << t2 << " ms" << endl;
  226.     cout << "\n***************************************************    " << endl;
  227.  
  228. }
  229. void sortowanie_babelkowe_ulepszone(int* tab, int wielkosc)
  230. {
  231.     DWORD t3, t4;
  232.     t3=GetTickCount();
  233.    for(int j= wielkosc - 1; j>1; j--)
  234.         for(int i = 0; i <= j ; i++)
  235.             if ( tab[i] > tab[i+1] )
  236.             {
  237.                 int pom = tab[i+1];
  238.                 tab[i+1] = tab[i];
  239.                 tab[i] = pom;
  240.             }
  241.  
  242.     t4=GetTickCount() - t3;
  243.     cout << "\nCzas trwania sortowania : " << t4 << " ms" << endl;
  244.     cout << "\n***************************************************    " << endl;
  245.  
  246. }
  247.  
  248. /*void sortowanie_Przez_Wstawianie(int* tab, int ile)
  249. {
  250.     DWORD t5, t6;
  251.     t5=GetTickCount();
  252.  
  253.   for(int j = ile - 2 ; j >= 0 ; j--)
  254.     {
  255.         int x = tab[j];
  256.         int i = j + 1;
  257.         while((i < ile) && (x > tab[i]))
  258.         {
  259.             tab[i - 1] = tab[i];
  260.             i++;
  261.         }
  262.         tab[i - 1] = x;
  263.     }
  264.     t6=GetTickCount() - t5;
  265.     cout << "\nCzas trwania sortowania : " << t6 << " ms" << endl;
  266.  
  267. }*/
  268.  
  269. /*void sortowanie_Przez_Wybieranie(int* tab, int wielkosc)
  270. {
  271.     DWORD t7, t8;
  272.     t7=GetTickCount();
  273.  
  274.     for(int j = 0; j < wielkosc - 1; j++)
  275.     {
  276.         int pmin = j;
  277.         for(int i = j + 1 ; i < wielkosc ; i++)
  278.         {
  279.             if(tab[i] < tab[pmin])
  280.             {
  281.                 pmin = i;
  282.             }
  283.         }
  284.         int a;
  285.         a = tab[pmin];
  286.         tab[pmin] = tab[j];
  287.         tab[j] = a;
  288.     }
  289.     t8=GetTickCount() - t7;
  290.     cout << "\nCzas trwania sortowania : " << t8 << " ms" << endl;
  291.      cout << "\n***************************************************    " << endl;
  292. }
  293. void sortowanie_quicksort(int* tab, int wielkosc,int* lewy, int* prawy,int j,int k,int piwot)
  294. {
  295.     DWORD t1, t2;
  296.     t1=GetTickCount();
  297.  
  298.   k = (lewy + prawy) / 2;
  299.   piwot = tab[k]; tab[k] = tab[prawy];
  300.   for(j = k = lewy; k < prawy; k++)
  301.   if(tab[k] < piwot)
  302.   {
  303.     swap(tab[k], tab[k]);
  304.     j++;
  305.   }
  306.   tab[prawy] = tab[j]; tab[j] = piwot;
  307.   if(lewy < j - 1)  sortowanie_quicksort(lewy, j - 1);
  308.   if(j + 1 < prawy) sortowanie_quicksort(j + 1, prawy);
  309.   t2=GetTickCount() - t1;
  310.       cout << "\nCzas trwania sortowania : " << t2 << " ms" << endl;
  311.      cout << "\n***************************************************    " << endl;
  312.  
  313. }
  314. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement