同理我们也可以分三路排序,这里只贴关键的代码,涉及的其它类在上篇《算法之快速排序-优化篇双路快排(java实现)》中有。
package lean.algo;
import java.util.*;
public class QuickSort3Ways {
// 我们的算法类不允许产生任何实例
private QuickSort3Ways(){
}
// 递归使用快速排序,对arr[l...r]的范围进行排序
private static void sort(Comparable[] arr, int l, int r){
// 对于小规模数组, 使用插入排序
if( r - l <= 15 ){
InsertionSort.sort(arr, l, r);
return;
}