fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void quicksort(int[] array, int start, int end) {
  11. if ((end-start) < 2) { return; }
  12. for (int i = 0; i < array.length; i++) {
  13. System.out.print(array[i] + " ");
  14. }
  15. System.out.println();
  16. int pIndex = partition(array, start, end);
  17. quicksort(array, start, pIndex - 1);
  18. quicksort(array, pIndex + 1, end);
  19.  
  20. }
  21.  
  22. public static int partition(int[] array, int start, int end) {
  23. int pivot = array[end];
  24. int pIndex = start;
  25. System.out.println("pivot: " + pivot);
  26. System.out.println("array[pIndex]: " + array[pIndex]);
  27. for (int i = start; i <= end - 1; i++) {
  28. if (array[i] <= pivot) {
  29. int tmp = array[pIndex]; // swap values
  30. array[pIndex] = array[i];
  31. array[i] = tmp;
  32. pIndex++;
  33. }
  34. }
  35. int tmpVal = array[pIndex];
  36. array[pIndex] = pivot;
  37. array[end] = tmpVal;
  38. return pIndex;
  39. }
  40.  
  41. public static void main (String[] args) throws java.lang.Exception
  42. {
  43. // your code goes here
  44. int[] array = {7, 5, 3, 6, 8, 1, 2, 4};
  45. quicksort(array, 0, array.length - 1);
  46. for (int i = 0; i < array.length; i++) {
  47. System.out.print(array[i] + " ");
  48. }
  49. }
  50. }
Success #stdin #stdout 0.09s 320576KB
stdin
Standard input is empty
stdout
7 5 3 6 8 1 2 4 
pivot: 4
array[pIndex]: 7
3 1 2 4 8 5 7 6 
pivot: 2
array[pIndex]: 3
1 2 3 4 8 5 7 6 
pivot: 6
array[pIndex]: 8
1 2 3 4 5 6 7 8