**SortHelper 排序工具类 **
public class SortHelper {
/**
* 用于测试算法的效率性
*
* @param arraysSort 使用的排序方法对象
* @param initArraySize 初始化数据量 每循环一次initArraySize=initArraySize*2
* @param doubleMultipleSize 循环次数
*/
public static void arraySort(ArraysSort arraysSort, int initArraySize, int doubleMultipleSize) {
System.out.println(arraysSort.getSortName());
int temp = initArraySize;
for (int i = 1; i <= doubleMultipleSize; i++) {
//初始化数组数据
int[] ints = generateArrayHelper(temp, 1, temp);
//进行方法调用
long startTime = System.currentTimeMillis();
int[] result = arraysSort.arraySortMethod(ints);
// Arrays.sort(ints);
long endTime = System.currentTimeMillis();
System.out.println(String.format("数组长度[%s] 值范围[%s-%s] 消耗的时间为[%s]毫秒",temp,1,temp,(endTime - startTime)));
temp = temp * 2;
}
}
/**
* 快速生成一个指定长度 指定value的数组
*
* @param size 长度
* @param min 最小值
* @param max 最大值
*/
public static int[] generateArrayHelper(int size, int min, int max) {
int[] ints = new int[size];
Random random = new Random();
for (int i = 0; i < size; i++) {
ints[i] = random.nextInt(max - min + 1) + min;
}
return ints;
}
/**
* 数组交换方法
*
* @param ints 需要交换的数组
* @param aIndex 交换的a索引
* @param bIndex 交换的b索引
*/
public static void swap(int[] ints, int aIndex, int bIndex) {
int temp = ints[aIndex];
ints[aIndex] = ints[bIndex];
ints[bIndex] = temp;
}
}
ArraysSort 所有基础排序需要实现的接口
/**
* 数组排序接口类
*/
public interface ArraysSort {
/**
* 获取当前排序方法名称
*/
String getSortName();
/**
* 默认升序排序的方法
*
* @param ints 排序的数组
* @return 结果集
*/
int[] arraySortMethod(int[] ints);
}