public class QuickSort {
private int priviotKey;
private int temp;
private int count=0;//记录排序次数
public int QSort(int[] a,int low,int high){
priviotKey=a[low];
while (low<high){
while(low<high&&a[high]>=priviotKey) --high;
temp=a[high];
a[high]=a[low];
a[low]=temp;
while(low<high&&a[low]<=priviotKey) ++low;
temp=a[low];
a[low]=a[high];
a[high]=temp;
//System.out.println("第"+count+"次"+Arrays.toString(a));
}
System.out.println(Arrays.toString(a));
return low;
}
}
package lwm.algorithm.Main;
import java.util.Arrays;
import lwm.algorithm.sort.BubbleSort;
import lwm.algorithm.sort.QuickSort;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={34,45,12,2,23,65,9,101,78,66};
_QSort(arr,0,arr.length-1);
System.out.println(Arrays.toString(arr));
}
public static void _QSort(int[] arr,int low,int high){
int temp=0;
int count=1;
QuickSort qs=new QuickSort();
if (low<high){
temp=qs.QSort(arr, low, high);
_QSort(arr, low, temp-1);
_QSort(arr, temp+1, high);
System.out.println("第"+count+"次调用");
count++;
}
}
}