6.2 Java 标准库中的排序实现

Java 的 Arrays.sort()Collections.sort() 使用了不同的算法:

  • 基本类型数组:使用双轴快速排序(Dual-Pivot Quicksort),由 Vladimir Yaroslavskiy 于 2009 年提出。对于小数组(< 47 元素),使用插入排序。
  • 对象数组:使用 TimSort,由 Tim Peters 于 2002 年为 Python 设计,后被 Java 采用。TimSort 是归并排序和插入排序的混合算法,利用了数据中已有的有序片段。