1.10000个固定随机数排序,记录排序时间。
2.核心排序算法。
@Test
public void chaRuPaiXu(){
//做数
int Length1 = 100000;
int[] ints = new int[Length1];
Random random = new Random(20);
int i1 = 0;
for (int i = 0; i < Length1 ; i++) {
i1 = random.nextInt(Length1);
ints[i] = i1;
}
long startTime = System.currentTimeMillis();
//排序算法
for (int i = 1; i < ints.length; i++) {
int tmp = ints[i];
for (int j = i; j > 0&&tmp < ints[j-1]; j--) {
ints[j] = ints[j-1];
ints[j-1] = tmp;
}
}
long endTime = System.currentTimeMillis();
System.out.println(Arrays.toString(ints));
System.out.println("程序运行时间:" + (endTime - startTime) + "ms"); // 2000ms
}
@Test
public void xiErPaiXu(){
//做数
int Length1 = 100000;
int[] ints = new int[Length1];
Random random = new Random(20);
int i1 = 0;
for (int i = 0; i < Length1 ; i++) {
i1 = random.nextInt(Length1);
ints[i] = i1;
}
System.out.println(Arrays.toString(ints));
long startTime = System.currentTimeMillis();
//排序算法
for (int gap = ints.length/2; gap > 0; gap /= 2) {
for (int i = gap; i < ints.length ; i++) {
int tmp = ints[i];
for (int j = i; j >= gap && tmp < ints[j - gap]; j -= gap) {
ints[j] = ints[j-gap];
ints[j-gap] = tmp;
}
}
}
long endTime = System.currentTimeMillis();
System.out.println(Arrays.toString(ints));
System.out.println("程序运行时间:" + (endTime - startTime) + "ms"); // 20ms
}