快速排序是所有排序中效率最高的算法,二分查找和递归的思想贯穿其中,看懂了快速排序,就懂得如何快速查找和使用递归
public class Quick {
public static void swap(int arr[],int i,int j){
int temp;
temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
public static void QuickSort(int arr[],int start,int end){
int mid=arr[start];
int left=start+1;
int right=end;
while(left<right){
while(left<right){
if(arr[left]>mid)
break;
else
left++;
}
while(right>=left){
if(arr[right]<mid)
break;
else
right--;
}
if(left<right){
swap(arr,left,right);
}
}
swap(arr,start,right);
if(right-start>1)
QuickSort(arr,start,right);
if(end-right-1>1)
QuickSort(arr,right+1,end);
}
public static void main(String[] args) {
int array[]=new int[]{11,5,3,2,34,54,26,43,23,41,89};
QuickSort(array,0,array.length-1);
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
}