privatevoidquickSort(int[] arr, int low, int high) { if (low >= high) return; // 将第一位做基准数, 使base左边都比base小, base右边都比base大 intbase= arr[low], i = low, j = high; while (i < j) { while (arr[j] >= base && i < j) j--; while (arr[i] <= base && i < j) i++; if (i < j) swap(arr, i, j); } // 交换基准数到中间 swap(arr, low, i); // 递归左右数组 quickSort(arr, low, i - 1); quickSort(arr, i + 1, high); }
publicvoidswap(int[] arr, int i, int j) { if (i == j) return; arr[i] = arr[i] ^ arr[j]; arr[j] = arr[i] ^ arr[j]; arr[i] = arr[i] ^ arr[j]; }