class Solution {
public int[] sortArray(int[] nums) {
if(nums.length==0||nums==null)return null;
int left=0;
int right=nums.length-1;
quick(nums,left,right);
return nums;
}
public static void quick(int []nums,int left,int right){
if(nums.length==0||nums==null)return ;
if(left>right) return ;
int l=left,r=right,key=nums[left];
while(l!=r){
while(nums[r]>=key&&l<r){
r--;
}
while(nums[l]<=key&&l<r){
l++;
}
//交换数据
int temp=nums[l];
nums[l]=nums[r];
nums[r]=temp;
}
//跳出循环说明l==r,那么交换key和lr所指的数
nums[left]=nums[l];
nums[l]=key;
//递归l所指的左右子数组
quick(nums,left,l-1);
quick(nums,l+1,right);
}
}
排序算法
最新推荐文章于 2024-11-10 18:26:35 发布