从JDK7开始,Arrays.sort()和Collections.sort()中排序算法发生了变化:
JDK7以前
---------------------
Arrays.sort(Object[] a) & Collections.sort(List<T> list)
modified mergesort
Arrays.sort(<primitive type>[] a)
tuned quicksort
JDK7开始
---------------------
Arrays.sort(Object[] a) & Collections.sort(List<T> list)
TimSort
Arrays.sort(<primitive type>[] a)
Dual-Pivot Quicksort
JDK7中两种算法的实现类:
java.util.DualPivotQuicksort
java.util.TimSort
java.util.ComparableTimSort
参考文档
Dual-Pivot QuickSort:
https://arxiv.org/pdf/1511.01138.pdf
Timsort:
https://sikasjc.github.io/2018/07/25/timsort/
单轴快排(SinglePivotQuickSort)和双轴快排(DualPivotQuickSort)及其JAVA实现
https://blog.csdn.net/Holmofy/article/details/71168530