package Utils.Sort;
/**
*快速排序,要求待排序的数组必须实现Comparable接口
*/
public class QuickSort implements SortStrategy
{ private static final int CUTOFF = 3; //当元素数大于此值时采用快速排序
/**
*利用快速排序算法对数组obj进行排序,要求待排序的数组必须实现了Comparable接口
*/
public void sort(Comparable[] obj)
{ if (obj == null)
{ throw new NullPointerException("The argument can not be null!");
}
quickSort(obj, 0, obj.length - 1);
}
/**
*对数组obj快速排序
*@param obj待排序的数组
*@param left 数组的下界
*@param right 数组的上界
*/
private void quickSort(Comparable[] obj, int left, int right)
{ if (left + CUTOFF > right)
{ SortStrategy ss = new ChooseSort();