Brollylssj

Scal

Nov 27th, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include <iostream>
  2. #include<ctime>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. void init(int t[], int N)
  8. {
  9. t[0]=rand()%10;
  10. for(int i=1; i<N;i++)
  11. t[i]=rand()%10 + t[i-1];
  12. }
  13.  
  14.  
  15. void show(int *tab,int size)
  16. {
  17.     for(int i =0;i<size;i++)
  18.         cout<<tab[i]<<" ";
  19. }
  20.  
  21. void merge(int *tab1,int size1,int *tab2, int size2, int *wynik)
  22. {
  23.     int i,j,k; // zmiennne pomocnicze
  24.  
  25.     for(i=j=k =0; i <size1 && j<size2; k++)
  26.     {
  27.         if(tab1[i]<tab2[j])
  28.         {
  29.             wynik[k] =tab1[i];
  30.             i++;
  31.         }
  32.         else
  33.         {
  34.             wynik[k] = tab2[j];
  35.             j++;
  36.         }
  37.     }
  38.  
  39.     if(i<size1)
  40.     {
  41.         for(;i<size1;i++,k++)
  42.         wynik[k]=tab1[i];
  43.     }
  44.     else
  45.     {
  46.         for(;j<size2;j++,k++)
  47.         wynik[k]=tab2[j];
  48.  
  49.     }
  50.  
  51.  
  52.  
  53. }
  54. void zadanie2()
  55. {
  56. int const N = 30;
  57. int const M = 40;
  58. int dane1[N], dane2[M], wynik[N+M];
  59.  
  60. init(dane1,N);
  61. cout<<"pierwsza tablica"<<endl;
  62. show(dane1,N);
  63. cout<<endl;
  64. cout<<"druga tablica"<<endl;
  65. init(dane2,M);
  66. show(dane2,M);
  67. cout<<endl;
  68. cout<<"po przesortowaniu"<<endl;
  69. merge(dane1,N,dane2,M,wynik);
  70. show(wynik,N+M);
  71.  
  72. }
  73.  
  74.  
  75.  
  76. int main()
  77. {
  78.     zadanie2();
  79.  
  80.  
  81.     system("PAUSE");
  82.     return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment