java - 使用 ArrayLists 快速排序

标签 java arraylist quicksort

我正在尝试使用 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/

相关文章:

java - Java中的多维ArrayList

class - 在我的 JSP 中遍历对象的数组列表时出现 HTTP 500 错误

java - Tomcat:获取基于 Jersey 的 Rest 服务的短 URL

java - JDBI中如何动态绑定(bind)一个表名

JAVA - 从字符串数组列表中删除元素

algorithm - 快速排序术语? (像胖枢轴)

java - 如何在 Quicksort (DualPivotQuicksort) 的 java 实现中引入随机性

algorithm - 为什么对于小的情况,插入排序比快速排序和冒泡排序快?

java - GSON - 转换字符串不区分大小写

java - 图像资源在 Android 中给出 0