我正在尝试使用 ArrayLists
实现快速排序 .但是我不确定如何创建一个 Arraylist<Integer>
其中包含所有整数。我觉得我可以使用一种方法轻松地做到这一点。这是我的代码
public static ArrayList<Integer> quicksort(ArrayList<Integer> arr, int min, int max) {
int pivot = (min + max)/2;
if (arr.size() <= 1) {
return arr;
}
else {
ArrayList<Integer> less = new ArrayList<Integer>();
ArrayList<Integer> greater = new ArrayList<Integer>();
for (int i : arr) {
if ( i < arr.get(pivot)) {
less.add(i);
}
else {
greater.add(i);
}
}
return quicksort(less, min, pivot) + arr.get(pivot) + quicksort(greater, pivot + 1, max);
}
}
最佳答案
你可以只使用addAll()
:
List<Integer> result = new ArrayList<>(less.size() + greater.size() + 1);
result.addAll(less);
result.add(pivot);
result.addAll(greater);
关于java - 使用 ArrayLists 快速排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22318898/