Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- using namespace std;
- void rekurencja (int n , int tab[2][100])
- { int max;
- cout<< 1; // pierwszy przedzial od razu staje sie seansem do wyboru
- max=tab[1][0]; // na max zapamietujemy pierwszy GORNY ZAKRES
- for(int i=1;i<n;i++)
- {
- if(tab[0][i]>=max) // czy dolny zakres jest wiekszy od ustalonego najwiekszego GORNEGO ZAKRESU
- {
- cout<< " "<< i+1; // jesli tak wypisujemy nr seansu
- max=tab[1][i]; // i zmieniamy nowe max na wiekszy GORNY ZAKRES
- }}
- }
- void Sortuj_szybko(int tab[][100],int lewy, int prawy)
- { //SORTUJEMY PO GORNYCH KRANCACH PRZEDIZLAU!!
- int i,j,piwot,zmienna;
- i = (lewy + prawy) / 2;
- piwot =tab[1][i]; //element podzialowy
- zmienna= tab[0][i]; // zabieram ze soba dolny kraniec
- tab[1][i] = tab[1][prawy]; // zapisujemy ost element na tab[i]
- tab[0][i]=tab[0][prawy];
- for(j = i = lewy; i < prawy; i++) // wskaznikiem i szukamy el <od piwotu
- if(tab[1][i] < piwot)//jesli el < piwotu
- {
- swap(tab[1][i], tab[1][j]);//zamieniamy i z j
- swap(tab[0][i],tab[0][j]);//zabieramy ze soba dolny zakres
- j++;
- }
- tab[1][prawy] = tab[1][j]; //el z j idzie na koniec
- tab[0][prawy]=tab[0][j];//zabieramy ze soba
- tab[1][j] = piwot; // na j wstaiwamy piwot
- tab[0][j]=zmienna;//zabieramy ze soba
- if(lewy < j - 1)
- Sortuj_szybko(tab,lewy, j - 1);
- if(j + 1 < prawy)
- Sortuj_szybko(tab,j + 1, prawy);
- }
- main()
- {
- int tab[2][100]={0};
- int a,n,i;
- cout<< "Podaj ilosc filmow : ";
- cin>>n;
- cout<<"\n\n";
- for ( i=0; i<n; i++) {
- cout<< "Podaj godzine rozpoczecia filmu NR "<<i+1<<endl;
- cin>>tab[0][i];
- cout<< ("\n");
- cout<<"Podaj godzine zakoczenia filmu NR "<<i+1<<endl ;
- cin>>tab[1][i];
- cout<< ("\n");
- }
- cout<< ("\n godziny filmow : ");
- for (i=0; i<n; i++)
- cout<< "[ "<<tab[0][i] <<", "<<tab[1][i]<<"] ";
- cout<< ("\n\n");
- Sortuj_szybko(tab,0,n-1);
- cout << "Po sortowaniu:\n\n"<<endl;
- cout<<" ";
- for(i = 0; i < n; i++)
- cout<< " ["<<tab[0][i] <<", "<<tab[1][i]<<"] ";
- cout<<" Numery seansow (odnosza sie do tablicy posortowanej) : ";
- rekurencja(n,tab);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement