public class ksSort {
/**
* 快排
* @param args
*/
public static void main(String[] args) {
int test[]={1,9,5,7,8,2,4};
quickSort.quick_Sort(test);
for(int i=0;ilo){
//找到新的基准key,将数组分为两部分
int middle=middle(arr,lo,hi);
//递归左子数组
sort(arr,lo,middle-1);
//递归右子数组
sort(arr,middle+1,hi);
}
}
public static int middle(int arr[],int lo,int hi){
int key=arr[lo];//将第一个数字作为基准
while(hi>lo){
while(arr[hi]>key && hi>lo){
hi--;
}
arr[lo]=arr[hi];
while(arr[lo]lo){
lo++;
}
arr[hi]=arr[lo];
}
arr[lo]=key;
return lo;
}
}