fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int partition (int *ARR, int start, int end){
  5. int pivot = ARR[end];
  6. int i = (start - 1);
  7. for (int j = start; j <= end - 1; j++){
  8. if (ARR[j] < pivot){
  9. i++;
  10. swap(ARR[i],ARR[j]);
  11. }
  12. }
  13. swap(ARR[i+1],ARR[end]);
  14. return (i + 1);
  15. }
  16.  
  17. void quick(int *ARR, int start, int end){
  18. if (start < end){
  19. int p = partition(ARR, start, end);
  20. quick(ARR, start, p - 1);
  21. quick(ARR, p + 1, end);
  22. }
  23. }
  24.  
  25. int main(){
  26. int N;
  27. cin>>N;
  28. int ARR[N];
  29. for (int i = 0; i < N; i++)
  30. cin>>ARR[i];
  31.  
  32. quick(ARR, 0, N - 1);
  33.  
  34. for (int i = 0; i < N; i++)
  35. cout<<ARR[i]<<' ';
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0.01s 5276KB
stdin
7
7 5 6 4 9 8 3
stdout
3 4 5 6 7 8 9