public class Sort {
/**
* 快速排序
*/
void quickSort( int arr[], int low, int high ){
int flag;
if(low<high){
flag=partition(arr,low,high);
quickSort(arr,low,flag-1);
quickSort(arr,flag+1,high);
}
}
//将比第一位小的放在其左,反之放在右边
int partition(int[] arr, int low, int high) {
int flag;
flag=arr[low];
while(low < high){
while (low < high && arr[high] >= flag){
high--;
}
swap(arr,low,high);
while (low < high && arr[low] <= flag){
low++;
}
swap(arr,low,high);
}
return low;
}
}
测试类
public class Test {
public static void main(String[] args) {
int[] arr=new int[]{5, 2, 6, 9, 3, 0, 1, 7, 4, 8};
Sort s=new Sort();
s.quickSort(arr,0,arr.length-1);
for(int k=0;k<arr.length;k++){
System.out.print(arr[k]);
}
}
}