publicvoid quickSearch(int[] arr, int lo, int hi){ if (lo > hi) { return; }
int start = lo; int end = hi + 1; int v = arr[lo]; while (true) { while (--end >= lo && arr[end] > v); while (++start <= hi && arr[start] < v); if(start >= end){ break; } int t = arr[end]; arr[end] = arr[start]; arr[start] = t; }
arr[lo] = arr[end]; arr[end] = v;
quickSearch(arr, lo, end - 1); quickSearch(arr, end + 1, hi); }
publicintquickSort(int[] arr, int lo, int hi){ int i = lo; int j = hi + 1; // 假设临界的值 int v = arr[lo]; while(true) { while(--j >= lo && arr[j] > v); while(++i <= hi && arr[i] < v); if(i >= j) { break; } int temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; }