fork(1) download
  1.  
  2. #include<stdio.h>
  3.  
  4. void swap(int *a, int *b){
  5. // ++swaps;
  6. *a = *a^*b;
  7. *b = *a ^ *b;
  8. *a = *a ^ *b;
  9. }
  10.  
  11. int partition (int arr[], int low, int high)
  12. {
  13. int pivot = arr[high]; // pivot
  14. int i = (low - 1); // Index of smaller element
  15.  
  16. for (int j = low; j <= high- 1; j++)
  17. {
  18. // If current element is smaller than or
  19. // equal to pivot
  20. if (arr[j] <= pivot)
  21. {
  22. i++; // increment index of smaller element
  23. swap(&arr[i], &arr[j]);
  24. }
  25. }
  26. swap(&arr[i + 1], &arr[high]);
  27. return (i + 1);
  28. }
  29.  
  30.  
  31. void quickSort(int arr[], int low, int high)
  32. {
  33. if (low < high)
  34. {
  35.  
  36. int pin = partition(arr, low, high);
  37.  
  38. quickSort(arr, low, pin - 1);
  39. quickSort(arr, pin + 1, high);
  40. }
  41. }
  42.  
  43. /* Function to print an array */
  44. void printArray(int s[], int size)
  45. {
  46. int i;
  47. for (i=0; i < size; i++)
  48. printf("%d ", s[i]);
  49. printf("\n");
  50. }
  51.  
  52.  
  53. int main()
  54. {
  55. int s[] = {10,7,6,12,3};
  56. int n = sizeof(s)/sizeof(s[0]);
  57. quickSort(s, 0, n-1);
  58. printf("Sorted array: \n");
  59. printArray(s, n);
  60. return 0;
  61. }
Success #stdin #stdout 0s 9432KB
stdin
Standard input is empty
stdout
Sorted array: 
3 0 0 10 12