Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Należy zaimplementować algorytm sortowania przez prostą zamianę (inaczej bąbelkowe), nierosnąco
- ciągu N liczb całkowitych. Należy wyświetlić ciąg przed i po posortowaniu.
- Algorytm i implementacja optymalne.
- Należy zaimplementować algorytm scalania w jeden ciąg wynikowy dwóch posortowanych
- niemalejąco ciągów liczb całkowitych o długościach odpowiednio N i M, z zachowaniem
- uporządkowania i stabilnie. Należy wyświetlić ciągi do scalenia i ciag wynikowy.
- Algorytm i implementacja optymalne.*/
- #include<iostream>
- #include<iomanip>
- #include<ctime>
- using namespace std;
- void init1(int *tab,int size)
- {
- for(int i =0;i<size;i++)
- {
- tab[i] = rand()%10;
- }
- }
- void show(int *tab,int size)
- {
- for(int i=0;i<size;i++)
- cout<<tab[i]<<" ";
- }
- void sort_babelkowe(int *tab,int size)
- {
- for(int i = 0; i <size ; i++)
- {
- for(int j = 0;j<size -1;j++)
- {
- if(tab[j]>tab[j+1])
- swap(tab[j],tab[j+1]);
- }
- }
- }
- void zadanie1()
- {
- int const size =10;
- int tab[size];
- cout<<"wylosowana tablica"<<endl;
- init1(tab,size);
- show(tab,size);
- cout<<endl;
- sort_babelkowe(tab,size);
- cout<<"po sortowaniu"<<endl;
- show(tab,size);
- cout<<endl;
- }
- void init2(int t[], int N)
- {
- t[0]=rand()%10;
- for(int i=1; i<N;i++)
- t[i]=rand()%10 + t[i-1];
- }
- void merge(int *tab1,int size1,int *tab2,int size2,int *wynik)
- {
- int i, j,k;
- for(i=j=k = 0; i< size1 && j<size2;k++)
- {
- if(tab1[i]<tab2[j]) // porownowanie elementow w tablicy
- {
- wynik[k]=tab1[i];
- i++;
- }
- else
- {
- wynik[k] =tab2[j];
- j++;
- }
- }
- if(i<size1)
- {
- for(;i<size1; i++,k++)
- wynik[k] = tab1[i];
- }
- else
- {
- for(;j<size2;j++,k++)
- {
- wynik[k]=tab2[j];
- }
- }
- }
- void zadanie2()
- {
- int const N = 30;
- int const M = 40;
- int dane1[N], dane2[M], wynik[N+M];
- init2(dane1,N);
- cout<<"pierwsza tablica"<<endl;
- show(dane1,N);
- cout<<endl;
- cout<<"druga tablica"<<endl;
- init2(dane2,M);
- show(dane2,M);
- cout<<endl;
- cout<<"po przesortowaniu"<<endl;
- merge(dane1,N,dane2,M,wynik);
- show(wynik,N+M);
- }
- int main()
- {
- srand(time(NULL));
- zadanie1();
- zadanie2();
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment