fork download
  1. #include <iostream>
  2. using namespace std;
  3. void printArray(int array[], int len) {
  4. for (int i = 0; i < len; i++) {
  5. cout << array[i] << " ";
  6. }
  7. cout << endl;
  8. }
  9. void swap(int* a, int *b) {
  10. int temp = *a;
  11. *a = *b;
  12. *b = temp;
  13. }
  14.  
  15. int partition(int arr[], int lo, int hi) {
  16. int pivot = arr[hi];
  17. int i = lo - 1;
  18. for (int j = lo; j <= hi-1; j++) {
  19. if (arr[j] <= pivot) {
  20. i +=1;
  21. swap(&arr[i], &arr[j]);
  22. }
  23. }
  24. swap(&arr[i+1], &arr[hi]);
  25. return i+1;
  26. }
  27.  
  28. void quicksort(int arr[], int lo, int hi) {
  29. if (lo < hi) {
  30. int p = partition(arr, lo, hi);
  31. quicksort(arr, lo, p-1 );
  32. printArray(arr, 8);
  33. quicksort(arr, p + 1, hi);
  34. }
  35. }
  36. int main() {
  37. int len;
  38. int array[] = {2,8,7,1,3,5,6,4};
  39. len = (sizeof(array)/sizeof(array[0]));
  40. quicksort(array, 0, len-1);
  41. printArray(array, len);
  42. return 0;
  43. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
1 2 3 4 7 5 6 8 
1 2 3 4 7 5 6 8 
1 2 3 4 7 5 6 8 
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8