参考算法导论伪代码
public class Quick {
public static void main(String[] args){
int[] datas = {1,3,2,1,8,6,0};
for(int k=0;k<datas.length;k++){
System.out.println(datas[k]);
}
quickSort(datas,0,datas.length);
System.out.println("===============");
for(int k=0;k<datas.length;k++){
System.out.println(datas[k]);
}
}
private static int partition(int[] datas,int p,int r){
int x = datas[datas.length-1];
int i = p-1;
for (int j=p;j<datas.length-1;j++){
if(datas[j]<=x){
i = i+1;
int temp = datas[i];
datas[i] = datas[j];
datas[j] = temp;
}
}
int temp = datas[i+1];
datas[i+1] = datas[datas.length -1];
datas[datas.length - 1] = temp;
return i+1;
}
private static void quickSort(int[] datas,int p,int r){
int q = 0;
if (p<r){
q = partition(datas, p, r);
quickSort(datas, p, q-1);
quickSort(datas,q+1,r);
}
}
}