快速排序
/**
* Created by kqq on 2018/3/24.
*/
public class QuickSort {
public int partition(int arr[],int low,int high){
int key=arr[low];
while(low<high){
while(arr[high]>key && low<high){
high--;
}
arr[low]=arr[high];
while(arr[low]<=key && low<high){
low++;
}
arr[high]=arr[low];
}
arr[high]=key;
return high;
}
public void sort(int arr[],int low,int high){
if(low>=high){
return;
}
int index=partition(arr,low,high);
sort(arr,low,index-1);
sort(arr,index+1,high);
}
public static int[] generateRandoamArray(){
int length=(int) (Math.random()*20)+5;
int[] arr=new int[length];
for(int i=0;i<arr.length;i++){
arr[i]=(int)(Math.random()*20)+1;
}
return arr;
}
public static void main(String[] args){
QuickSort quickSort=new QuickSort();
int testTime=5;
for(int i=0;i<testTime;i++){
int arr[]=generateRandoamArray();
quickSort.sort(arr,0, arr.length-1);
}
}
}