思路:
https://blog.youkuaiyun.com/u014241071/article/details/81565148
他写的比我好,我还是只上代码吧。
//快排
public static int[] sortArray(int[] nums) {
int left = 0;
int right = nums.length-1;
quickSort(nums,left,right);
return nums;
}
private static void quickSort(int[] nums, int left, int right) {
// TODO Auto-generated method stub
if(left<right) {
int mid = getMiddle(nums,left,right);
quickSort(nums, left, mid-1);
quickSort(nums, mid+1, right);
}
}
private static int getMiddle(int[] nums, int left, int right) {
// TODO Auto-generated method stub
int i = left;
int j = right;
int temp = nums[left];
while(i<j) {
while(i<j&&temp<=nums[j]) {
j--;
}
while(i<j&&temp>=nums[i]) {
i++;
}
if(i<j) {
int l = nums[i];
int r = nums[j];
nums[i] = r;
nums[j] = l;
}
}
nums[left] = nums[i];
nums[i] = temp;
return i;
}