快速排序
public static void quickSort(int[] arr,int start,int end) {
if(start<end) {
int point=partition(arr,start,end);
quickSort(arr, start, point-1);
quickSort(arr, point+1, end);
}
}
private static int partition(int[] arr, int start, int end) {
int pi=arr[start];
int left=start;
int right=end;
while(left<right) {
while(left<right&&arr[right]>=pi)right--;
while(left<right&&arr[left]<=pi)left++;
if(left>=right)break;
arr[left]=arr[left]+arr[right]-(arr[right]=arr[left]);
}
arr[start]=arr[left];
arr[left]=pi;
return left;
}