class Solution {
public int[] sortArray(int[] nums) {
// int n = nums.length;
int n = nums.length;
dec(nums,0,n-1);
return nums;
}
public void dec(int[] nums,int left,int right){
if (left >= right){
return;
}
int idx = (right+left)/2;
// System.out.println(idx);
// nums[left],nums[idx] = nums[idx],nums[left];
swap(nums,left,idx);
int i = left;
int j = right;
int pviot = nums[left];
while(i<j){
while( i<j && nums[j] >= pviot){
j -=1;
}
while(i<j && nums[i] <= pviot){
i +=1;
}
// nums[i],nums[j] = nums[j],nums[i];
swap(nums,i,j);
}
// nums[left],nums[i] = nums[i],nums[left];
swap(nums,left,i);
dec(nums,left,i-1);
dec(nums,i+1,right);
}
private void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
12-11
2945
09-11
314