public class Quick { public static void quickIndex(int[] array, int l, int r) { if(l<r) { int i = l; int j = r; int temp = array[i]; while (i < j) { while (i < j && array[j] >= temp) { j--; } if (i < j) { array[i] = array[j]; i++; } while (i < j && array[i] <= temp) { i++; } if (i < j) { array[j] = array[i]; j--; } } array[i] = temp; quickIndex(array, l, i - 1); quickIndex(array, i + 1, r); } } public static void main(String[] args){ int[] a={1,2,4,3,9,0,7,6,-9,-6}; quickIndex(a,0,a.length-1); System.out.println(Arrays.toString(a)); } }
时间复杂度O(nlogn) 空间复杂度O(1)