如题描述菜鸟的代码写的有点难懂,我这边根据思路自己写了一个快排。大家可以借鉴。
快排思想:
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据要小,再按这种方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,使整个数据变成有序序列。
public class QuickSort {
public static void sort(int []nums){
if (nums.length==1){
return;
}
partition(nums,0,nums.length-1);
}
private static void partition(int []nums,int left,int right){
int lPoint=left; //左指针
int rPoint=right; //右指针
int valPoint=left;//记录基准的下标
int val=nums[valPoint];
do {
if (valPoint == lPoint) {
if (val >= nums[rPoint]) {
nums[valPoint]=nums[rPoint];
lPoint++;
valPoint = rPoint;
} else rPoint--;
} else {
if (val < nums[lPoint]) {
nums[valPoint]=nums[lPoint];
rPoint--;
valPoint = lPoint;
} else lPoint++;
}
} while (lPoint != rPoint);
nums[valPoint]=val;
//继续递归的条件
if (valPoint>left+1)
partition(nums,left,valPoint-1);
if (valPoint+1


