package 选择排序;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class Select {
public static void main(String[] args) {
int[] arr = {9, 5, 7, 3, 6, 1, 4, 2, 8};
System.out.println("排序前的数组为:" + Arrays.toString(arr));
// int[] arr = new int[100000];
// for (int i = 0; i < 100000; i++) {
// arr[i] = (int) (Math.random() * 100);
// }
// Date d1 = new Date();
// SimpleDateFormat sdf = new SimpleDateFormat("yy年MM月dd日 HH:mm:ss");
// String start = sdf.format(d1);
// System.out.println("排序前时间:"+start);
SelectSort(arr);
// Date d2 = new Date();
// String end = sdf.format(d2);
// System.out.println("排序后时间:"+end);
}
public static void SelectSort(int[] arr) {
//一共要进行arr.length-1次循环
for (int i = 0; i < arr.length - 1; i++) {
int minIdex = i;
int min = arr[i];
for (int j = 1 + i; j < arr.length; j++) {
if (min > arr[j]) {
//>是升序 <是逆序
//不是最小,就记录索引号,并记录最小值
minIdex = j;
min = arr[j];
}
}
//当判断完最小值是谁,再进行交换位置和值
//可以做一个优化 如果minIdex改变 则说明需要交换,否者不用交换
if (minIdex != i) {
arr[minIdex] = arr[i];
arr[i] = min;
}
// System.out.println("排序第" + i + "次后的数组为:" + Arrays.toString(arr));
}
System.out.println("排序后的数组为:" + Arrays.toString(arr));
}
}
选择排序(SelectSort)
于 2022-02-22 11:34:11 首次发布