快速排序
挖坑法
static void quickSort(int[] arr,int begin, int end){
if(begin>=end) return;
int left = begin;
int right = end;
//选取第一个为坑位
int t = arr[begin];
while(begin<end){
while(arr[end]>=t && begin<end){
end--;
}
arr[begin] = arr[end];
while(arr[begin]<t && begin<end){
begin++;
}
arr[end]=arr[begin];
}
//此时begin==end,填坑
arr[begin] = t;
quickSort(arr,left,begin-1);
quickSort(arr,begin+1,right);
}
时间复杂度:最好为nlogn,最坏为n^2(原来是逆序)