浅谈Java底层排序双轴快排

本文探讨了Java底层排序算法中的双轴快速排序(DualPivotQuicksort)。双轴快排通过选取两个轴点将数组分为三部分,优化了排序效率。当待排序元素数量小于286时,会转为使用传统快速排序。若序列高度结构化,可能采用TimSort。此外,对于小规模数组,会使用双插入排序。文章还提及了选择轴点的复杂过程。
摘要由CSDN通过智能技术生成

在Java 底层的排序中有几个非常有用并且面试可以装逼的算法,TimSortDualPivotQuicksort( 双轴快速排序 ),( binarySort)二分插入排序。
这三个排序,TimSort的思想非常先进并且有效,是目前排序算法中运用于工程中最最最好的算法了。
在这里我赋上各位大佬写的详细解释的链接:

TimSort详细解释

双轴快排详细解释

这篇文章我们来谈谈Java在底层排序的实现思路(主要是我实现不出来…所以只能谈谈)
在查看底层源码之前,我们先引入双轴快排的基础思想
在数组中选择两个轴,把一个小(pivot1)一个大(pivot2),把数组分为三份,小于pivot1的数 ,大于等于pivot1 并且 小于等于pivot2的数,大于pivot2的数。
如果选出的pivot1 和 pivot2是相等的数,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值