快速排序
public static void quickSort(int[] arr){
quick(arr,0,arr.length-1);
}
private static void quick(int[] arr,int l,int r){
if(l < r){
int index = arr[l],i=l,n=r;
while ( l < r){
while(l<r&&arr[r] >= index)r--;
if(l < r)arr[l++] = arr[r];
while(l < r&& arr[l] <= index)l++;
if(l < r)arr[r--] = arr[l];
}
arr[l] = index;
quick(arr,i,l-1);
quick(arr,i+1,n);
}
}
private static void quick(int[] arr,int l,int r){
if(l < r){
int index = arr[l],i = l,n = r;
while(l<r){
while(l < r && arr[r] >= index)r--;
while(l < r && arr[l] <= index)l++;
if(l < r && arr[l] != arr[r]){
int temp = arr[l];
arr[l] = arr[r];
arr[r] = temp;
}else {
arr[l] = index;
}
}
quick(arr,i,l-1);
quick(arr,i+1,r);
}
}