Brollylssj

test1a

Nov 27th, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.18 KB | None | 0 0
  1. /*
  2. Należy zaimplementować algorytm sortowania przez prostą zamianę (inaczej bąbelkowe), nierosnąco
  3. ciągu N liczb całkowitych. Należy wyświetlić ciąg przed i po posortowaniu.
  4. Algorytm i implementacja optymalne.
  5.  
  6. Należy zaimplementować algorytm scalania w jeden ciąg wynikowy dwóch posortowanych
  7. niemalejąco ciągów liczb całkowitych o długościach odpowiednio N i M, z zachowaniem
  8. uporządkowania i stabilnie. Należy wyświetlić ciągi do scalenia i ciag wynikowy.
  9. Algorytm i implementacja optymalne.*/
  10.  
  11.  
  12. #include<iostream>
  13. #include<iomanip>
  14. #include<ctime>
  15.  
  16. using namespace std;
  17.  
  18. void init1(int *tab,int size)
  19. {
  20.     for(int i =0;i<size;i++)
  21.     {
  22.         tab[i] = rand()%10;
  23.     }
  24.  
  25. }
  26.  
  27. void show(int *tab,int size)
  28. {
  29.     for(int i=0;i<size;i++)
  30.         cout<<tab[i]<<" ";
  31.  
  32. }
  33.  
  34.  
  35. void sort_babelkowe(int *tab,int size)
  36. {
  37.     for(int i = 0; i <size ; i++)
  38.     {
  39.         for(int j = 0;j<size -1;j++)
  40.         {
  41.             if(tab[j]>tab[j+1])
  42.                 swap(tab[j],tab[j+1]);
  43.         }
  44.     }
  45.  
  46.  
  47. }
  48.  
  49.  
  50. void zadanie1()
  51. {
  52.     int const size =10;
  53.     int tab[size];
  54.     cout<<"wylosowana tablica"<<endl;
  55.     init1(tab,size);
  56.     show(tab,size);
  57.     cout<<endl;
  58.     sort_babelkowe(tab,size);
  59.     cout<<"po sortowaniu"<<endl;
  60.     show(tab,size);
  61.     cout<<endl;
  62.  
  63.  
  64. }
  65.  
  66. void init2(int t[], int N)
  67. {
  68. t[0]=rand()%10;
  69. for(int i=1; i<N;i++)
  70. t[i]=rand()%10 + t[i-1];
  71. }
  72.  
  73. void merge(int *tab1,int size1,int *tab2,int size2,int *wynik)
  74. {
  75.     int i, j,k;
  76.    
  77.     for(i=j=k = 0; i< size1 && j<size2;k++)
  78.     {
  79.         if(tab1[i]<tab2[j]) // porownowanie elementow w tablicy
  80.         {
  81.             wynik[k]=tab1[i];
  82.             i++;
  83.         }
  84.         else
  85.         {
  86.             wynik[k] =tab2[j];
  87.             j++;
  88.         }
  89.  
  90.  
  91.     }
  92.  
  93.     if(i<size1)
  94.     {
  95.         for(;i<size1; i++,k++)
  96.             wynik[k] = tab1[i];
  97.     }
  98.  
  99.     else
  100.     {
  101.         for(;j<size2;j++,k++)
  102.         {
  103.             wynik[k]=tab2[j];
  104.         }
  105.     }
  106.  
  107.  
  108. }
  109.  
  110. void zadanie2()
  111. {
  112. int const N = 30;
  113. int const M = 40;
  114. int dane1[N], dane2[M], wynik[N+M];
  115.  
  116. init2(dane1,N);
  117. cout<<"pierwsza tablica"<<endl;
  118. show(dane1,N);
  119. cout<<endl;
  120. cout<<"druga tablica"<<endl;
  121. init2(dane2,M);
  122. show(dane2,M);
  123. cout<<endl;
  124. cout<<"po przesortowaniu"<<endl;
  125. merge(dane1,N,dane2,M,wynik);
  126. show(wynik,N+M);
  127.  
  128. }
  129.  
  130.  
  131. int main()
  132. {
  133.     srand(time(NULL));
  134.  
  135.     zadanie1();
  136.     zadanie2();
  137.  
  138.     system("PAUSE");
  139.     return 0;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment