Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. using namespace std;
  5.  
  6.  
  7.  
  8. void rekurencja (int n , int tab[2][100])
  9. { int max;
  10. cout<< 1; // pierwszy przedzial od razu staje sie seansem do wyboru
  11. max=tab[1][0]; // na max zapamietujemy pierwszy GORNY ZAKRES
  12. for(int i=1;i<n;i++)
  13. {
  14. if(tab[0][i]>=max) // czy dolny zakres jest wiekszy od ustalonego najwiekszego GORNEGO ZAKRESU
  15. {
  16. cout<< " "<< i+1; // jesli tak wypisujemy nr seansu
  17. max=tab[1][i]; // i zmieniamy nowe max na wiekszy GORNY ZAKRES
  18. }}
  19. }
  20.  
  21.  
  22. void Sortuj_szybko(int tab[][100],int lewy, int prawy)
  23. { //SORTUJEMY PO GORNYCH KRANCACH PRZEDIZLAU!!
  24. int i,j,piwot,zmienna;
  25.  
  26. i = (lewy + prawy) / 2;
  27. piwot =tab[1][i]; //element podzialowy
  28. zmienna= tab[0][i]; // zabieram ze soba dolny kraniec
  29. tab[1][i] = tab[1][prawy]; // zapisujemy ost element na tab[i]
  30. tab[0][i]=tab[0][prawy];
  31. for(j = i = lewy; i < prawy; i++) // wskaznikiem i szukamy el <od piwotu
  32. if(tab[1][i] < piwot)//jesli el < piwotu
  33. {
  34. swap(tab[1][i], tab[1][j]);//zamieniamy i z j
  35. swap(tab[0][i],tab[0][j]);//zabieramy ze soba dolny zakres
  36. j++;
  37. }
  38. tab[1][prawy] = tab[1][j]; //el z j idzie na koniec
  39. tab[0][prawy]=tab[0][j];//zabieramy ze soba
  40. tab[1][j] = piwot; // na j wstaiwamy piwot
  41. tab[0][j]=zmienna;//zabieramy ze soba
  42. if(lewy < j - 1)
  43. Sortuj_szybko(tab,lewy, j - 1);
  44. if(j + 1 < prawy)
  45. Sortuj_szybko(tab,j + 1, prawy);
  46. }
  47.  
  48.  
  49. main()
  50. {
  51. int tab[2][100]={0};
  52. int a,n,i;
  53.  
  54.  
  55.  
  56. cout<< "Podaj ilosc filmow : ";
  57. cin>>n;
  58. cout<<"\n\n";
  59. for ( i=0; i<n; i++) {
  60. cout<< "Podaj godzine rozpoczecia filmu NR "<<i+1<<endl;
  61.  
  62. cin>>tab[0][i];
  63. cout<< ("\n");
  64. cout<<"Podaj godzine zakoczenia filmu NR "<<i+1<<endl ;
  65. cin>>tab[1][i];
  66. cout<< ("\n");
  67. }
  68. cout<< ("\n godziny filmow : ");
  69. for (i=0; i<n; i++)
  70. cout<< "[ "<<tab[0][i] <<", "<<tab[1][i]<<"] ";
  71. cout<< ("\n\n");
  72.  
  73. Sortuj_szybko(tab,0,n-1);
  74.  
  75. cout << "Po sortowaniu:\n\n"<<endl;
  76. cout<<" ";
  77. for(i = 0; i < n; i++)
  78. cout<< " ["<<tab[0][i] <<", "<<tab[1][i]<<"] ";
  79.  
  80. cout<<" Numery seansow (odnosza sie do tablicy posortowanej) : ";
  81. rekurencja(n,tab);
  82.  
  83.  
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement