package offerExam;
public class QuickSort {
public static void main(String[] args){
int[] array={2,3,2,4,1};
quickSort(array);
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
private static void quickSort(int[] array) {
// TODO Auto-generated method stub
if(array==null||array.length<=1)
return;
int start=0;
int end=array.length-1;
int index=partition(array,array.length,start,end);
if(index>start);
partition(array,array.length,start,index-1);
if(index<end)
partition(array,array.length,index+1,end);
}
private static int partition(int[] array, int length, int start, int end) {
//int index=(start+end)/2;
int index=(int)(Math.random()*(end-start))+start;
//generate the index ranging [start,end)
swap(array,index,end);
int small=start-1;
for(int i=start;i<end;i++){
if(array[i]<array[end]){
small++;
if(small!=i)
swap(array, i ,small);
}
}
small++;
swap(array, small, end);
return small;
// TODO Auto-generated method stub
}
private static void swap(int[] array, int idx1, int idx2) {
// TODO Auto-generated method stub
int temp=array[idx1];
array[idx1]=array[idx2];
array[idx2]=temp;
}
}
快速排序-Java
最新推荐文章于 2022-04-09 20:47:31 发布