在Java 8中,函数Arrays.sort()
取决于数组的长度。
if(length>=`QUICKSORT_THRESHOLD=286`){
take `Dual-Pivot Quicksort`;
}
else if(length<`QUICKSORT_THRESHOLD=286` && length>`INSERTION_SORT_THRESHOLD=47`){
take `One-Pivot Quicksort
}
else { take `Insertion Sort`}
286
或47
是怎么来的? 最佳答案
这是基于算法复杂度的计算。
一些关于StackOverflow的信息:
How to optimize quicksort
合并排序:
https://www.khanacademy.org/computing/computer-science/algorithms/merge-sort/a/analysis-of-merge-sort
快速排序:
https://www.khanacademy.org/computing/computer-science/algorithms/quick-sort/a/analysis-of-quicksort