public class Test3 {
public static void main(String[] args){
int[] arr={5,15,45,1,3,66,89,48};
System.out.print("排序前的结果为:");
for(int i:arr){
System.out.print(i+" ");
}
Test3 test=new Test3();
test.quicksort(arr,0,arr.length-1);
System.out.print("\n排序后的结果为:");
for(int i:arr){
System.out.print(i+" ");
}
}
private int[] quicksort(int[] arr,int left,int right){
if(left<right){
int pos=patition(arr,left,right);
quicksort(arr,left,pos-1);
quicksort(arr,pos+1,right);
}
return arr;
}
private int patition(int[] arr,int left,int right){
int pivot=left;
int index=pivot+1;
for (int i=index;i<=right;i++){
if(arr[i]<arr[pivot]){
swap(arr,i,index);
index++;
}
}
swap(arr,pivot,index-1);
return index-1;
}
private void swap(int[] arr,int i,int j){
int tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
}
排序前的结果为:5 15 45 1 3 66 89 48
排序后的结果为:1 3 5 15 45 48 66 89