/**
* @Author leijs
* @date 2021/8/16
*/
public class SelectSort {
public static void main(String[] args) {
int[] arr = {1, 4, 3, 6, 8, 4, 9, 6, 2};
int[] arr1 = sort(arr);
for (int i = 0; i < arr1.length; i++) {
System.out.print(arr1[i]);
}
}
/**
* 选择排序:
* 将第一个值看成是最小值,然后和后续的比较找到最小值和小标
* 交换本次遍历的起始值和最小值
* 说明:每次遍历的时候,将前面找出的最小值看成是一个有序的列表,
* 后面的看成是一个无序的列表,然后每次遍历无序列表找出最小值
*
* @param arr
*/
public static int[] sort(int[] arr) {
for (int i = 0; i < arr.length; i++) {
// 默认第一个是最小的
int min = arr[i];
// 记录最小的下标
int index = i;
// 通过和后面的数据进行比较得出最小值和下标
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < min) {
min = arr[j];
index = j;
}
}
// 然后将最小值与本地循环的,进行交换
if (index != i) {
int temp = arr[i];
arr[i] = min;
arr[index] = temp;
}
}
return arr;
}
}