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-01-28 22:49:25 发布
本文深入探讨了快速排序算法的原理,包括其基本思想、步骤以及优缺点。通过实例解析,帮助读者理解如何实现和应用这一高效的排序方法。
摘要由CSDN通过智能技术生成