Loading…
Loading…
Divide and conquer: pick a pivot, partition values around it, then recursively sort each side.
Start quicksort.
1void quickSort(int[] arr, int left, int right) {2 if (left >= right) return; // base case3 int pivot = arr[right], i = left; // pivot = last element4 for (int j = left; j < right; j++) // scan the range5 if (arr[j] < pivot) swap(arr, i++, j); // move smaller ones left6 swap(arr, i, right); // pivot to final spot7 quickSort(arr, left, i - 1); // sort left part8 quickSort(arr, i + 1, right); // sort right part9}10 11void swap(int[] arr, int i, int j) {12 int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;13}