开始从一边遍历,如果遇到arr[i]>l,那么开始遍历另一边,知道另一边遇到arr[j]
/**
*快速排序,默认是l=0,r=arr.length-1
*/
public static void quickSort(int[] arr,int l,int r){
if(l < r){
int i = l,j = r,x = arr[l];
while(i<j){
while(i < j && arr[j] > x)
j--;
if(i < j){
arr[i++] = arr[j];
/**
* 首先执行arr[i] = arr[j]
* 然后执行 i++
*/
}
while(i < j && arr[i] < x)
i++;
if(i < j){
arr[j --] = arr[i];
}
}
arr[i] = x;
quickSort(arr,l,i-1);
quickSort(arr,i+1,r);
}
}
public static void printSorted(int[] arr,int l,int r){
if(l==0 && r == arr.length - 1) {
test.quickSort(arr,l,r);
}else{
System.out.println("输入的参数不合法");
return ;
}
for(int i = 0;i<arr.length;i++){
System.out.println(arr[i]);
}
}