根据算法导论伪代码编写:
public class quickSort {
static void swap(int[]a,int i,int j){
if(i!=j){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
static void quicksort(int[] a,int p,int q){
if(p>=q){
return ;
}
int num = part(a,p,q);
quicksort(a,p,num-1);
quicksort(a,num+1,q);
}
private static int part(int[] a,int p,int q ) {
int i=p;
int r = a[q];
for(int j = p;j<q;j++){
if(a[j]<r){
swap(a,j,i);
i++;
}
}
swap(a,i,q);
return i;
}
public static void main(String[] args) {
int[] a = {4,6,1,8,46,131,131,4164,798,46,54};
quicksort(a,0,a.length-1);
for(int i : a){
System.out.print(i+",");
}
}
}