package com.atguigu.sort;
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];
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateBegin = simpleDateFormat.format(new Date());
System.out.println(dateBegin);
for (int i = 0; i < 80000; i++) {
arr[i] = (int)(Math.random() * 8000);
}
selectSort(arr);
String dateEnd = simpleDateFormat.format(new Date());
System.out.println(dateEnd);
}
private static void selectSort(int arr[]) {
for (int i = 0; i < arr.length - 1; i++) {
// 假定最小值为 arr[i] 最小值的下表索引为 i
int min = arr[i];
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
// 如果 arr[i] 不是最小的
if (min > arr[j]) {
// 将最小值及其索引保存在 min 和 minIndex中
min = arr[j];
minIndex = j;
}
}
// 如果 i 不是最小值的下标 而 j = minIndex才是
// 则 将此时 i 下标的值 赋值给 arr[minIndex]
// 再将 min 中存的最小值赋值给 arr[i] 即可
if (minIndex != i) {
arr[minIndex] = arr[i];
arr[i] = min;
}
System.out.printf("第%d轮",i+1);
System.out.println(Arrays.toString(arr));
}
}
}
原文:https://www.cnblogs.com/dailichen/p/14266387.html