1、partition函数用于返回主元在排序后所在的索引
2、quickSort函数递归调用,分别对主元两侧的子数组排序
public static void quickSort(arr,p,r){
if(p<r){
q = partition(arr,p,r); //下标q是作为分区的基准使用
quickSort(arr,p,q-1);
quickSort(arr,q+1,r);
}
}
public static int partition(arr,p,r){
int x = arr[r]; //x作为基准
int i = p-1; //
for(int j = p; j < r; j++){
if(arr[j] <= x){
i = i+1;
exchange(arr[i],arr[j]);
}
}
exchange(arr[i+1],arr[r]);
return i+1;
}
exchange用于交换两个元素的位置
public static void exchange(int i,int j){
int tmp = i;
i = j;
j = tmp;
}