通过实测,得出选择排序比冒泡排序耗费的时间要低很多。虽然选择排序和冒泡排序的时间复杂度都为O(
n
2
n^2
n2),但实际上选择排序要比冒泡排序更快。
一、代码
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class SelectSort {
public static void main(String[] args) {
int[] arr = new int[80000];
for (int i = 0; i < 80000; i++) {
arr[i] = (int) (Math.random() * 100000);
}
Date date1 = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date1Str = simpleDateFormat.format(date1);
System.out.println("选择排序前的时间:" + date1Str);
selectSort(arr);
Date date2 = new Date();
String date2Str = simpleDateFormat.format(date2);
System.out.println("选择排序后的时间:" + date2Str);
}
public static void selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i;
int min = arr[i];
for (int j = i + 1; j < arr.length; j++) {
if (min > arr[j]) {
min = arr[j];
minIndex = j;
}
}
if (minIndex != i) {
arr[minIndex] = arr[i];
arr[i] = min;
}
}
}
}
二、结果
1. 第1次测试耗时1秒
选择排序前的时间:2020-07-20 21:29:53
选择排序后的时间:2020-07-20 21:29:54
2. 第2次测试耗时1秒
选择排序前的时间:2020-07-20 21:32:17
选择排序后的时间:2020-07-20 21:32:18
3. 第3次测试耗时1秒
选择排序前的时间:2020-07-20 21:32:55
选择排序后的时间:2020-07-20 21:32:56