fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void quicksort(int[],int, int);
  5. int partition(int[], int, int);
  6.  
  7. int main()
  8. {
  9. int a[] = {5, 1, 9, 3, 8, 4, 1, 2, 6, 7};
  10. for (int i = 0; i < 10; i++)
  11. {
  12. cout << a[i] << " ";
  13. }
  14. cout << endl;
  15. quicksort(a, 0, 9);
  16. for (int i = 0; i < 10; i++)
  17. {
  18. cout << a[i] << " ";
  19. }
  20. return 0;
  21. }
  22.  
  23. void quicksort(int a[], int p, int r)
  24. {
  25. if (p < r)
  26. {
  27. int q = partition(a, p, r);
  28. quicksort(a, p, q - 1);
  29. quicksort(a, q + 1, r);
  30. }
  31. }
  32.  
  33. int partition(int a[], int p, int r)
  34. {
  35. int x = a[r];
  36. int i = (p - 1);
  37. for (int j = p; j <= r-1; j++)
  38. {
  39. if (a[j] <= x)
  40. {
  41. i++;
  42. int tmp = a[i];
  43. a[i] = a[j];
  44. a[j] = tmp;
  45. }
  46. }
  47. int tmp = a[i+1];
  48. a[i+1] = a[r];
  49. a[r] = tmp;
  50. return (i + 1);
  51. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
5 1 9 3 8 4 1 2 6 7 
1 1 2 3 4 5 6 7 8 9