import java.util.Arrays; class QuickSort { public static void main(String[] args) { int[] inputArray = new int[] { 89,5 ,27, 18, 9, 3, 27, 54, 21, 108 }; QuickSort uc = new QuickSort(); uc.quickSort(inputArray, 0, inputArray.length - 1); System.out.println(Arrays.toString(inputArray)); } private void quickSort(int[] array, int start, int end) { if (start < end) { int p = partition(array, start, end); quickSort(array, start, p - 1); quickSort(array, p + 1, end); } } private int partition(int[] array, int start, int end) { int pivot = array[end]; int i = start - 1; int j = start; while(j <= end-1) { if (array[j] <= pivot) { ++i; int iVal = array[i]; int jVal = array[j]; array[j] = iVal; array[i] = jVal; } j++; } int iVal = array[i+1]; array[end] = iVal; array[i+1] = pivot; return i+1; } }
Output:
[3, 5, 9, 18, 21, 27, 27, 54, 89, 108]