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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| public class QuickSort {
public static void main(String[] args) { int[] nums = {2, 4, 1, 0, 3, 5}; quickSort(nums, 0, 5); for (int num : nums) { System.err.println(num); } }
static void quickSort(int[] nums, int left, int right) { if (left >= right) return; int pivot = partition(nums, left, right); quickSort(nums, left, pivot - 1); quickSort(nums, pivot + 1, right); }
static void swap(int[] nums, int i, int j) { int tmp = nums[i]; nums[i] = nums[j]; nums[j] = tmp; }
static int partition(int[] nums, int left, int right) { int i = left, j = right; while (i < j) { while (i < j && nums[j] >= nums[left]) j--; while (i < j && nums[i] <= nums[left]) i++; swap(nums, i, j); } swap(nums, i, left); return i; } }
|