1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| private static void quickSort(int[] arr) { qsort(arr, 0, arr.length-1); }
private static void qsort(int[] arr, int left, int right) { if (right < left) return; int index = partition(arr, left, right); qsort(arr, left, index-1); qsort(arr, index+1, right); }
private static int partition(int[] arr, int left, int right) { int pivot = left; int index = pivot + 1; for (int i = index; i <= right; i++) { if (arr[i] < arr[pivot]) { swap(arr, i, index); index++; } } swap(arr, pivot, index - 1); return index - 1; }
|