fork download
  1. #include <stdio.h>
  2.  
  3.  
  4.  
  5. void swap(int *a, int *b) {
  6. int temp = *a;
  7. *a = *b;
  8. *b = temp;
  9. }
  10.  
  11. void quick_sort(int *a, int imin, int imax) {
  12. if (imax <= imin) return ;
  13. int imid = (imin + imax)/2;
  14. int pivot = a[imid];
  15. swap(&a[imid], &a[imax-1]);
  16. int i, j = imin;
  17. for (i = imin; i < imax-1; i += 1) {
  18. if (a[i] < pivot) {
  19. swap(&a[i], &a[j]);
  20. j += 1;
  21. }
  22. }
  23. swap(&a[j], &a[imax-1]);
  24. quick_sort(a, imin, j);
  25. quick_sort(a, j+1, imax);
  26. }
  27.  
  28. int main() {
  29. int i;
  30. int a[6] = {6, 9, 5, 2, 8, 1};
  31. for (i = 0; i < 6; i += 1)
  32. printf("%d ", a[i]);
  33. printf("\n");
  34. quick_sort(a, 0, 6);
  35. for (i = 0; i < 6; i += 1)
  36. printf("%d ", a[i]);
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0s 2292KB
stdin
Standard input is empty
stdout
6 9 5 1 8 
1 5 6 8 9