相关使用的工具类与接口
运行效率
/**
* 这是选择排序方法
* 数组长度[2000] 值范围[1-2000] 消耗的时间为[5]毫秒
* 数组长度[4000] 值范围[1-4000] 消耗的时间为[8]毫秒
* 数组长度[8000] 值范围[1-8000] 消耗的时间为[12]毫秒
* 数组长度[16000] 值范围[1-16000] 消耗的时间为[47]毫秒
* 数组长度[32000] 值范围[1-32000] 消耗的时间为[188]毫秒
* 数组长度[64000] 值范围[1-64000] 消耗的时间为[742]毫秒
* 数组长度[128000] 值范围[1-128000] 消耗的时间为[2933]毫秒
* 数组长度[256000] 值范围[1-256000] 消耗的时间为[11697]毫秒
* 数组长度[512000] 值范围[1-512000] 消耗的时间为[47148]毫秒
*/
@Test
public void arraySortTest() {
ArraysSort arraysSort = new SelectSortMethod();
SortHelper.arraySort(arraysSort, 2000, 10);
}
实现类
@Override
public int[] arraySortMethod(int[] ints) {
for (int i = 0; i < ints.length - 1; i++) {
//记录外循环指针与内循环每个值对比 比它小的就覆盖
int minIndex = i;
for (int j = i + 1; j < ints.length; j++) {
//每个内循环与minIndex判断 小的就进行覆盖 然后一次循环比较
if (ints[j] < ints[minIndex]) {
minIndex = j;
}
}
//如果外循环指针minIndex不等于 i
//则说明内循环中找到了比它还小的 则进行替换
if (i != minIndex) {
SortHelper.swap(ints, i, minIndex);
}
}
return ints;
}