publicstatic Integer[]random(int count,int min,int max){if(count <=0|| min > max)return null;
Integer[] array =newInteger[count];int delta = max - min +1;for(int i =0; i < count; i++){
array[i]= min +(int)(Math.random()* delta);}return array;}
时间测试
import java.text.SimpleDateFormat;import java.util.Date;publicclassTimes{privatestaticfinal SimpleDateFormat fmt =newSimpleDateFormat("HH:mm:ss.SSS");publicinterfaceTask{voidexecute();}publicstaticvoidtest(String title, Task task){if(task == null)return;
title =(title == null)?"":("【"+ title +"】");
System.out.println(title);
System.out.println("开始:"+ fmt.format(newDate()));long begin = System.currentTimeMillis();
task.execute();long end = System.currentTimeMillis();
System.out.println("结束:"+ fmt.format(newDate()));double delta =(end - begin)/1000.0;
System.out.println("耗时:"+ delta +"秒");
System.out.println("-------------------------------------");}}
冒泡排序
/**
* 冒泡排序 : 通过前后两个元素比较, 将大的元素网后移动
*/publicstaticint[]bubbleSort(int[] array){int[] sortArray = array;// 第一次迭代, 找出最大值, 一共需要 length - 1 次for(int i =0; i < sortArray.length -1; i++){// 迭代到最后for(int j =0; j < sortArray.length -1; j++){if(sortArray[j]> sortArray[j +1]){
Util.swap(j +1, j, sortArray);}}}return sortArray;}'优化一'publicstaticint[]bubbleSort1(int[] array){int[] sortArray = array;// 第一次迭代, 一共需要 length - 1 次for(int i =0; i < sortArray.length -1; i++){// 第 i 次只需迭代到 (length - i - 1) 位, 之后是迭代好的for(int j =0; j < sortArray.length - i -1; j++){if(sortArray[j]> sortArray[j +1]){
Util.swap(j +1, j, sortArray);}}}return sortArray;}'优化二, 一般不用'publicstaticint[]bubbleSort1(int[] array){int[] sortArray = array;// 第一次迭代, 一共需要 length - 1 次for(int i =0; i < sortArray.length -1; i++){// 标记是否进行交换boolean flag =true;// 第 i 次只需迭代到 (length - i - 1) 位, 之后是迭代好的for(int j =0; j < sortArray.length - i -1; j++){if(sortArray[j]> sortArray[j +1]){
Util.swap(j +1, j, sortArray);
flag =false;}}// true 说明没有进行交换, 直接退出交换if(flag){break;}}return sortArray;}