在Java 底层的排序中有几个非常有用并且面试可以装逼的算法,TimSort,DualPivotQuicksort( 双轴快速排序 ),( binarySort)二分插入排序。
这三个排序,TimSort的思想非常先进并且有效,是目前排序算法中运用于工程中最最最好的算法了。
在这里我赋上各位大佬写的详细解释的链接:
这篇文章我们来谈谈Java在底层排序的实现思路(主要是我实现不出来…所以只能谈谈)
在查看底层源码之前,我们先引入双轴快排的基础思想
在数组中选择两个轴,把一个小(pivot1)一个大(pivot2),把数组分为三份,小于pivot1的数 ,大于等于pivot1 并且 小于等于pivot2的数,大于pivot2的数。
如果选出的pivot1 和 pivot2是相等的数,