Collections.sort()点击进入: 

点击sort()进入: 

如果没有指定Comparator 进入Arrays.sort:

  •  如果Comparator为null,则进入sort方法

  • 看是否设置了LegacyMergeSort.userRequested为true 如果设置了则使用归并排序,如果未设置则使用TimSort(优化归并排序)

 

  • LegacyMergeSort.userRequested==true,采用legacyMergeSort

  • 否则采用ComparableTimSort

ComparableTimSort是改进后的归并排序,对归并排序在已经反向排好序的输入时表现为O(n^2)的特点做了特别优化。对已经正向排好序的输入减少回溯。对两种情况(一会升序,一会降序)的输入处理比较好(摘自百度百科)。 

相关文章:

  • 2021-09-28
  • 2021-12-15
  • 2021-09-28
  • 2021-09-28
  • 2021-09-28
  • 2021-09-28
  • 2020-03-18
  • 2021-09-28
猜你喜欢
  • 2021-09-28
  • 2021-09-28
  • 2021-11-29
  • 2021-09-28
  • 2021-09-28
  • 2021-11-19
相关资源
相似解决方案