gpt4 book ai didi

java - 使这个 QuickSort Java 程序变得更好

转载 作者:行者123 更新时间:2023-12-02 08:15:02 24 4
gpt4 key购买 nike

我有这个 QuickSort 程序,我想这可能不是最好的解决方案,我想要关于我可以做的优化的想法。我计划在大约 2000 万个整数上运行它。

public static ArrayList<Comparable> quickSort(ArrayList<Comparable> arrayToSort) {
if(arrayToSort.size() <= 0) {
return arrayToSort;
}
Comparable pivot = arrayToSort.get(0);
arrayToSort.remove(pivot);
return quickSort(arrayToSort, pivot);
}

private static ArrayList<Comparable> quickSort(ArrayList<Comparable> arrayToSort, Comparable pivot) {
ArrayList<Comparable> smaller = new ArrayList<Comparable>();
ArrayList<Comparable> bigger = new ArrayList<Comparable>();

for(Comparable i: arrayToSort) {
if(i.compareTo(pivot) > 0) {
bigger.add(i);
} else {
smaller.add(i);
}
}
ArrayList<Comparable> retVal = new ArrayList<Comparable>();

retVal.addAll(quickSort(smaller));
retVal.add(pivot);
retVal.addAll(quickSort(bigger));

return retVal;
}

谢谢

最佳答案

  1. 使用introsort而不是快速排序。
  2. 使用三中位数或随机主元选择。
  3. 使用 Fork/Join 进行并行化.

关于java - 使这个 QuickSort Java 程序变得更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com