快速排序是采用分治和递归的经典算法之一,每次找一个基数,比它大的放右边,比它小的放左边。
public static void mysort1(int[] a,int begin,int end){
if(begin<end){//递归的临界条件
int low=begin;
int high=end;
int key=a[end];
while(low<high){//控制一次遍历
while(low<high&&a[low]<key){
low++;
}
if(low<high){
a[high--]=a[low];
}
while(low<high&&a[high]>key){
high--;
}
if(low<high){
a[low++]=a[high];
}
}
a[low]=key;
mysort1(a, 0, low-1);
mysort1(a,low+1,end);
}
}