public static void quickSort(ArrayList<Integer> arr){
// 基线条件
if(arr.size()<2){
System.out.println("满足基线条件");
return ;
// 递归条件
}else {
// 基准值
int pivot=arr.get(arr.size()-1);
ArrayList<Integer> rightArr=new ArrayList<Integer>();
ArrayList<Integer> leftArr =new ArrayList<Integer>();
// 根据基准值将数组分为左右侧
System.out.println("数组长度"+arr.size());
for(int i=0;i<arr.size()-1;i++){
if(arr.get(i)>pivot){
// 右边数组
rightArr.add(arr.get(i));
}else {
// 左边数组
leftArr.add(arr.get(i));
}
}
System.out.println("右边数组为:"+rightArr.toString());
System.out.println("左边数组为:"+leftArr.toString());
//
quickSort(leftArr);
quickSort(rightArr);
arr.clear();
for (int i=0;i<leftArr.size();i++){
arr.add(leftArr.get(i));
}
arr.add(pivot);
for (int i = leftArr.size()+1; i <leftArr.size()+1+rightArr.size(); i++) {
arr.add(rightArr.get(i-leftArr.size()-1));
}
return ;
}
}