三分切向的快速排序
主要用于解决元素重复度高的问题。
概念:
快速排序的概念等请看上一节。https://www.jianshu.com/p/528ddb856e27
三分快排与快排的主要区别在于多了中间相等的一组,在重复元素多的数组中,其排序速度更快。其关键在于切分后下一步要处理的数组是相等一组两边的数组。(重复元素排序完后就不用排序)
切换到插入排序
概念:
对于小数组,快速排序比插入排序慢。同时,在快排的sort()方法中, 即使是小数组时候也会调用自己。因此,在小数组时候切换成插入排序能有效提高排序速度。