Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.58 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct auta
  6. {
  7.     string marka;
  8.     int wiek;
  9. };
  10.  
  11. wczytajDane (int n, auta *wsk)
  12. {
  13.     for (int i=0;i<n;i++)
  14.     {
  15.         cout << "Podaj marke auta " << i+1 << endl;
  16.         cin >> wsk[i].marka;
  17.         cout << "Podaj wiek auta " << i+1 << endl;
  18.         cin >> wsk[i].wiek;
  19.     }
  20. }
  21.  
  22. wyswietl (int n, auta *wsk)
  23. {
  24.     for (int i=0;i<n;i++)
  25.     {
  26.         cout << wsk[i].marka <<"\t";
  27.         cout << wsk[i].wiek << endl;
  28.     }
  29.     return 0;
  30. }
  31.  
  32. void sortowanieBabelkowe(int n, auta *wsk)
  33. {
  34.     for(int i=0; i<n; i++ )
  35.         {
  36.             for(int j=0; j<n-1; j++ )
  37.             {
  38.                 if( wsk[j].wiek>wsk[j+1].wiek)
  39.                      swap(wsk[j].wiek, wsk[j+1].wiek);
  40.             }
  41.         }
  42. }
  43.  
  44. void quickSort(int left, int right, auta *wsk)
  45. {
  46.     if (left < right)
  47.     {
  48.         int m = left;           // nr indeksu dla elem. osiowego
  49.         for (int i = left + 1 ; i <= right ; i++)
  50.             if (wsk[i].wiek < wsk[left].wiek)
  51.             {
  52.                 swap(wsk[++m], wsk[i]);
  53.             }
  54.             swap(wsk[left], wsk[m]);
  55.  
  56.             quickSort(left, m - 1, wsk);
  57.             quickSort(m + 1, right, wsk);
  58.     }
  59. }
  60.  
  61. void sortowanieWstawianie(int n, auta *wsk)
  62. {
  63.     int temp, j;
  64.     for(int i=1;i<n; i++)
  65.     {
  66.         temp=wsk[i].wiek;
  67.         for(j=i-1; j>=0&&wsk[j].wiek>temp; j--)
  68.         {
  69.             wsk[j+1].wiek=wsk[j].wiek;
  70.         }
  71.         wsk[j+1].wiek=temp;
  72.     }
  73. }
  74.  
  75. void sortowanieWybieranie(int n, auta *wsk)
  76. {
  77.     int max;
  78.     for(int i=0; i<n; i++)
  79.     {
  80.         max = i;
  81.         for(int j=i+1; j<n; j++)
  82.         {
  83.             if( wsk[j].wiek < wsk[max].wiek)
  84.             {
  85.                 max = j;
  86.                 swap(wsk[max].wiek, wsk[i].wiek);
  87.             }
  88.         }
  89.     }
  90. }
  91.  
  92. void bisekcyjne(int n, auta *wsk)
  93. {
  94.     int l, p, x, s;
  95.     cout<<"Podaj element do wyszukania"<<endl;
  96.     cin>>x;
  97.     //s-szukana
  98.     l=0;
  99.     p=n;
  100.     while (l<=p)
  101.     {
  102.         s=(l + p)/2;
  103.         if (wsk[s].wiek == x)
  104.         {
  105.             cout<<"Odnaleziono element "<<x<<" pod indeksem "<<s<<endl;
  106.             return;
  107.         }
  108.         if (wsk[s].wiek < x)
  109.         {
  110.             l = s + 1;
  111.         }
  112.         else
  113.         {
  114.             p = s - 1;
  115.         }
  116.     }
  117.     cout<<"Nie odnaleziono w wsklicy elementu "<<x<<endl;
  118. }
  119.  
  120. int main ()
  121. {
  122.     int n;
  123.     cout<<"Podaj liczbe aut"<<endl;
  124.     cin>>n;
  125.     auta samochod[n];
  126.     auta *wsk;
  127.     wsk =&samochod[0];
  128.  
  129.     wczytajDane (n,wsk);
  130.     wyswietl (n,wsk);
  131.     cout<<"sortowanieBabelkowe"<<endl;
  132.     sortowanieBabelkowe(n,wsk);
  133.     wyswietl (n,wsk);
  134.     cout<<"quickSort"<<endl;
  135.     quickSort(0, n-1, wsk);
  136.     wyswietl (n,wsk);
  137.     cout<<"sortowanieWstawianie"<<endl;
  138.     sortowanieWstawianie(n,wsk);
  139.     wyswietl (n,wsk);
  140.     cout<<"sortowanieWybieranie"<<endl;
  141.     sortowanieWybieranie(n,wsk);
  142.     wyswietl (n,wsk);
  143.     cout<<"bisekcyjne"<<endl;
  144.     bisekcyjne(n, wsk);
  145.     wyswietl (n,wsk);
  146.  
  147. }
  148. /*
  149. void wczytajTablice(int n, int *tab)
  150. {
  151.     for(int i=0;i<n;i++)
  152.     {
  153.           cout << "Podaj "<<i+1<<" liczbe: "<< endl;
  154.           cin >> *tab;
  155.           tab++;
  156.     }
  157. }
  158.  
  159. void wyswietlTablice(int n, int *tab)
  160. {
  161.     for (int i=0;i<n;i++)
  162.     {
  163.         cout<<*tab<<endl;
  164.         tab++;
  165.         //&a[i] to to samo co tab; tab++;
  166.     }
  167. }
  168.  
  169. int main()
  170. {
  171.     int n=0;
  172.     cout << "Podaj ile liczb do tablicy chcesz wprowadzic" << endl;
  173.     cin>>n;
  174.     int a[n];
  175.     int *tab;
  176.     tab=&a[0];
  177.     wczytajTablice(n,tab);
  178.     wyswietlTablice(n,tab);
  179.  
  180.     return 0;
  181. }
  182. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement