我正在尝试以两种方式对快速排序进行编码,一种是就地编码,另一种是使用单独的数组。我有点卡在一些逻辑上,看看我有什么,提前感谢您的帮助!
public List<Integer> sort(List<Integer> arr){
if(arr.length > 0)
List<Integer> ret = new ArrayList<Integer>();
ret = quickSort(arr);
return ret;
}
public List<Integer> quickSort(List<Integer> arr){
if(arr.length < 2)
return;
int pivot = arr[0];
List<Integer> left = new ArrayList<Integer>();
List<Integer> right = new ArrayList<Integer>();
for(int i = 0; i < arr.length; i++){
if(arr[i] <= pivot)
left.add(arr[i]);
else
right.add(arr[i]);
}
quickSort(left);
quickSort(right);
}
现在我被困住了,我不知道在递归地遍历两组之后我会做什么,主要是停留在如何将它们连接在一起并返回一个排序列表。