标签:string rand imp form led 选择排序 tostring 排序 temp
n个数据,总共进行n-1次大的循环,得到一个按从小到大排列的有序序列:
public class SelectSortDemo {
public static void main(String[] args) {
// int[] arr = {18, 3, 22, 1, 17, 24, 6, 15};
// selectSort(arr);
int arr2[] = new int[80000];
for(int i = 0; i < 80000; i++)
arr2[i] = (int) (Math.random() * 800000);
Date date1 = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str1 = sdf.format(date1);
System.out.println(str1);
selectSort(arr2); // 测试:8w个数据
Date date2 = new Date();
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str2 = sdf2.format(date2);
System.out.println(str2);
}
public static void selectSort(int[] arr) {
int minValIndex, temp;
for(int i = 0; i < arr.length - 1; i++) {
minValIndex = i;
for(int j = i+1; j < arr.length; j++)
if(arr[minValIndex] > arr[j])
minValIndex = j;
if(minValIndex != i) {
temp = arr[minValIndex];
arr[minValIndex] = arr[i];
arr[i] = temp;
}
// System.out.printf("第%d趟:%s\n", i+1, Arrays.toString(arr));
}
}
public static void detail(int[] arr) {
// 第1轮
int minValIndex = 0;
int temp;
for(int j = 0 + 1; j < arr.length; j++)
if(arr[minValIndex] > arr[j])
minValIndex = j;
if(minValIndex != 0) {
temp = arr[minValIndex];
arr[minValIndex] = arr[0];
arr[0] = temp;
}
System.out.println("第1趟:" + Arrays.toString(arr));
// 第2轮
minValIndex = 1;
for(int j = 1 + 1; j < arr.length; j++)
if(arr[minValIndex] > arr[j])
minValIndex = j;
if(minValIndex != 1) {
temp = arr[minValIndex];
arr[minValIndex] = arr[1];
arr[1] = temp;
}
System.out.println("第2趟:" + Arrays.toString(arr));
// 第3轮
minValIndex = 2;
for(int j = 2 + 1; j < arr.length; j++)
if(arr[minValIndex] > arr[j])
minValIndex = j;
if(minValIndex != 2) {
temp = arr[minValIndex];
arr[minValIndex] = arr[2];
arr[2] = temp;
}
System.out.println("第3趟:" + Arrays.toString(arr));
// ... → minValIndex = maxIndex(7) - 1 = 6
}
}
标签:string rand imp form led 选择排序 tostring 排序 temp
原文地址:https://www.cnblogs.com/liujiaqi1101/p/12327597.html