//快排 public static void quickSort(int[] array,int low,int height){ if(low > height){ return; } int i = low; int j = height; int base = array[i];//基准元素 while(i < j){ while(i < j && base < array[j]){ j--; } if(i < j){//此时,右边元素小于基准元素,将该值调往左边 array[i++] = array[j]; } while(i < j && base > array[i]){ i++; } if(i < j){//此时,左边元素大于基准元素,将该值调往右边 array[j--] = array[i]; } } array[i] = base; quickSort(array,low,i-1);//递归排序左边数组 quickSort(array,i+1,height);//递归排序右边数组 }
|