package com.ffyc.util.arraysortspeedtest;
import com.ffyc.util.ArraySort;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class SelectSortSpeedTest {
public static void main(String[] args) {
//创建一个长度为80000的随机值数组
//这里我们先创建一个长度为80000的数组
int [] arr = new int [80000];
//然后给这个数组中的每个位置都赋上随机值
for (int i = 0; i < 80000; i++) {
//这里的Math.random()*8000000就是生成一个随机的[0,8000000)之间的数值
arr[i] = (int)(Math.random()*8000000);
}
//创建一个当前时间的Date类的对象
Date date1 = new Date();
//创建了一个格式化Date的SimpleDateFormat类型的对象,用于格式化日期对象
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date1Str = simpleDateFormat.format(date1);
System.out.println("排序前的时间是: "+ date1Str);
//调用选择排序的方法,将我们的待排序数组传入我们的选择排序的方法中
ArraySort.selectSort(arr);
//创建一个排完序之后的date类型的对象
Date date2 = new Date();
String date2Str = simpleDateFormat.format(date2);
System.out.println("排序后的时间是: "+ date2Str);
}
}
有的人会说我们的冒泡排序的时间复杂度是o(n2),而我们的选择排序的时间复杂度也是O(n2),这个时候我们使用选择排序为什么会比使用冒泡排序快这么多?