/**
快速排序:通过一趟排序把数据分为两部分,其中一部分中的数据要比另一部分中的所有数据小
,然后再按此方法对两部分数据进行快速排序,整个过程可以递归进行。
public class test2 {
public void sort(int arr[],int low,int high){
int l=low;
int h=high;
int povit=arr[low];
while(l<h){
while(l<h&&arr[h]>=povit)
h--;
if(l<h){
int temp=arr[h];
arr[h]=arr[l];
arr[l]=temp;
l++;
}
while(l<h&&arr[l]<povit)
l++;
if(l<h){
int temp=arr[h];
arr[h]=arr[l];
arr[l]=temp;
h--;
}
}
System.out.print("l="+(l+1)+"h="+(h+1)+"povit="+povit+"\n");
if(l>low) sort(arr,low,l-1);
if(h<high) sort(arr,l+1,high);
}
public static void main(String[] args) {
int arr[]={6,4,3,8,5,9,7};
test2 sort=new test2();
sort.sort(arr,1,5);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}