import java.util.Arrays;
/**
* @author mccrea
* @version 1.0
* @description: 选择排序,第一次从待排序的数据元素中选出最小(或最大)的一个元素,
* 存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,
* 然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。
* @date 2020/9/16 21:51
*/
public class SelectSort {
public static void main(String[] args) {
int[] numberArr = new int[] {3,12, 6, 10, 4, 1, -9, -5,87, 90, 23, 12};
// 中间变量存储最小值
int minNumber;
// 最小值索引位置
int minIndex;
for (int i = 0; i < numberArr.length - 1; i ++) {
// 假定一轮的起始值为最小值,记录最小值和索引
minNumber = numberArr[i];
minIndex = i;
for (int j = i + 1; j < numberArr.length; j ++) {
// 最小值大于遍历到的值
if (minNumber > numberArr[j]) {
// 记录最小值和索引
minIndex = j;
minNumber = numberArr[j];
}
}
// 起始数据和最小值位置交换
numberArr[minIndex] = numberArr[i];
numberArr[i] = minNumber;
System.out.println(Arrays.toString(numberArr));
}
System.out.println("最终排序结果");
System.out.println(Arrays.toString(numberArr));
}
}