import java.util.Arrays;
public class My {
void quickSort(int[] arr, int start,int end){
if(start>=end){ //必须start>=end
return;
}
int temp=arr[start];
int i=start;
int j=end;
while(i<j){
while(i<j&&arr[j]>=temp){//右侧等于temp的不用动,只有小于temp时才被交换到左侧
j--;
}//如果在这i==j跳出循环,此时arr[i]是个无用的多余值
arr[i]=arr[j];
while(i<j&&arr[i]<temp){
i++;
}//如果在这i==j跳出循环,此时arr[j]是个无用的多余值
arr[j]=arr[i];
}
//此时i==j,arr[i]==arr[j]==无用的多余值
arr[i]=temp;
quickSort(arr,start,i);
quickSort(arr,i+1,end);
}
public static void main(String[] args){
My my=new My();
int[] arr={5,6,1,2,4,7,2,3,4,6,4};
my.quickSort(arr,0,arr.length-1);
System.out.println(Arrays.toString(arr));
}
}