class Solution {
public int[] sortArray(int[] nums) {
int[] arr = quickSort(nums, 0, nums.length - 1);
return arr;
}
int[] quickSort(int[] arr,int start,int end) {
int left = start;
int right = end;
//记录基准值
int temp = arr[start];
while (left < right) {
//遍历右边
while (left < right && arr[right] >= temp) {
right--;
}
//交换位置
if (left < right) {
arr[left] = arr[right];
left++;
}
//遍历左边
while (left < right && arr[left] <= temp) {
left++;
}
//交换位置
if (left < right) {
arr[right] = arr[left];
right--;
}
}
//最后剩下的位置通过temp来填充
if (left == right) {
arr[left] = temp;
}
//递归实现
if (left > start)
quickSort(arr,start,left - 1);
if (right < end)
quickSort(arr,left + 1,end);
return arr;
}
}