Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. struct opis{
  7. unsigned int npanstwa;
  8. int wspolczynnik;
  9. };
  10.  
  11.  
  12. int Hoare(vector<opis> dane, int n)//n <=rozmiarowi wektora mniejszych, czyszcze clear rownych wiekszych i dane clear sharing to fit
  13. {
  14. vector<opis> mniejsze; //return hoare vector mniejszych n
  15. vector<opis> wieksze;
  16. vector<opis> rowne;
  17. int i=rand()%dane.size() ;
  18. for( auto it : dane)
  19. {
  20. if(dane.data()[i].wspolczynnik < it.wspolczynnik)
  21. {
  22. wieksze.push_back(it);
  23. }
  24. else if(dane.data()[i].wspolczynnik == it.wspolczynnik)
  25. {
  26. rowne.push_back(it);
  27. }
  28. else
  29. {
  30. mniejsze.push_back(it);
  31. }
  32. }
  33. if(n <= mniejsze.size())
  34. {
  35. wieksze.clear();
  36. rowne.clear(); // Jeżeli i > |B| i i ¬ |B| + |C| zwróć a.
  37. // 5 Jeżeli i > |B| + |C| zwróć (i − (|B| + |C|)). element listy D.
  38. dane.clear();
  39. wieksze.shrink_to_fit();
  40. rowne.shrink_to_fit();
  41. dane.shrink_to_fit();
  42. return mniejsze.data()[i].npanstwa;
  43. }
  44. if(n > mniejsze.size() && n <= (mniejsze.size()+rowne.size()))
  45. {
  46. return i;
  47. }
  48. if(n > (mniejsze.size()+rowne.size()))
  49. {
  50. return wieksze.data()[i-mniejsze.size()+rowne.size()].npanstwa;
  51. }
  52. Hoare(mniejsze,n);
  53. }
  54.  
  55. int main()
  56. {
  57. ios_base::sync_with_stdio(false);
  58. int panstwa,i;
  59. opis wczytaj;
  60. cin >> panstwa;
  61. vector<opis> panstw;
  62.  
  63. // int numer, wspolczynnik;
  64. for(i =0; i < panstwa; i++)
  65. {
  66. cin >> wczytaj.npanstwa >> wczytaj.wspolczynnik ;
  67. panstw.push_back(wczytaj);
  68.  
  69. }
  70. int m,n;
  71. cin >> m;
  72. cin >> n;
  73. Hoare(panstw,n);
  74.  
  75. return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement