public class QuickSort {
public static void main(String[] args) {
int[] a = { 12, 20, 5, 16, 15, 1, 30, 45, 23, 9 };
int start = 0;
int end = a.length - 1;
quickSort(a, start, end);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
public static void quickSort(int array[], int start, int end) {
if (start >= end)
return;
int mid = subQuick(array, start, end);
quickSort(array, start, mid - 1);
quickSort(array, mid + 1, end);
}
private static int subQuick(int array[], int start, int end) {
int middle = array[start];
while (start < end) {
if (array[end] >= middle && start < end) {
end--;
}
array[start] = array[end];
if (array[start] <= middle && start < end) {
start++;
}
array[end] = array[start];
}
array[start] = middle;
return start;
}
}