Advertisement
edutedu

quick sort

Mar 5th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int a[100];
  5. int pivot1(int st, int dr)
  6. {
  7. if(st==dr)
  8. return st;
  9. else
  10. {
  11. if(a[st]>a[dr])
  12. {
  13. swap(a[st], a[dr]);
  14. return pivot1(st, dr-1);
  15. }
  16. else
  17. return pivot1(st+1, dr);
  18. }
  19. }
  20. int pivot(int st, int dr)
  21. {
  22. int i=st, j=dr, di=0, dj=1;
  23. while(i<j)
  24. {
  25. if(a[i]>a[j])
  26. {
  27. swap(a[i], a[j]);
  28. swap(di,dj);
  29. }
  30. i+=di;
  31. j-=dj;
  32. }
  33. return i;
  34.  
  35. }
  36. void quicksort(int st, int dr)
  37. {
  38. if(st<dr)
  39. {
  40. int p=pivot(st,dr);
  41. quicksort(st, p-1);
  42. quicksort(p+1, dr);
  43. }
  44. }
  45. int main()
  46. {
  47. int n, i;
  48. cin>>n;
  49. for(i=1; i<=n; i++)
  50. cin>>a[i];
  51. pivot(1, n);
  52. quicksort(1,n);
  53. for(i=1; i<=n; i++)
  54. cout<<a[i]<<" ";
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement