nicuvlad76

Untitled

Dec 17th, 2020
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define N 100005
  3. using namespace std;
  4. int n, a[N];
  5. int Pivot(int st, int dr)
  6. {
  7. ///randomizare pivot
  8. int mij=(st+dr)/2,aux;
  9. aux=a[st],a[st]=a[mij], a[mij]=aux;
  10. ///asezare pivota a[st] pe pozitia lui
  11. int i=st, j=dr,d=0;/// pt d=0 scade j pt d=1 creste i
  12. while(i<j)
  13. {
  14. if(a[i]>a[j])
  15. {
  16. aux=a[i]; a[i]=a[j]; a[j]=aux;
  17. d=1-d;
  18. }
  19. i+=d;
  20. j-=1-d;
  21. }
  22. return i;
  23. }
  24. void QS(int st, int dr)
  25. {
  26. if(st<dr)
  27. {
  28. int mij=Pivot(st,dr);
  29. QS(st,mij-1);
  30. QS(mij+1,dr);
  31. }
  32. }
  33. void Citire()
  34. {
  35. cin>>n;
  36. for(int i=1;i<=n;i++)cin>>a[i];
  37. }
  38. void Afisare()
  39. {
  40. for(int i=1;i<=n;i++)
  41. cout<<a[i]<<' ';
  42. }
  43. int main()
  44. {
  45. Citire();
  46. QS(1,n);
  47. Afisare();
  48. return 0;
  49. }
  50.  
Advertisement
Add Comment
Please, Sign In to add comment