1 つはインプレースで、もう 1 つは別の配列を使用して、2 つの方法でクイックソートをコーディングしようとしています。私はいくつかのロジックに行き詰まっています。私が持っているものを見てください。事前に助けてくれてありがとう!
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);
}
今、私は立ち往生しています。両方のセットを再帰的に通過した後、どうすればよいかわかりません。ほとんどの場合、それらを接続してソートされたリストを返す方法に固執しています。