1、算法思想:
第一步:在未排序的序列中找到最小(大)的数,放到排序序列的起始位置
第二步:再从剩下未排序的序列中找最小(大)的数,放到已经排序序列的最后位置
第三步:重复第二步即可,直到完成所有排序
2、动图演示(动图来源菜鸟教程)
代码实现:
public class SelectSort {
public static void main(String[] args) {
int[] arr = {22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 35, 9, 70};
int[] ans = selectSort(arr);
for(int i : ans) {
System.out.print(i + " ");
}
}
private static int[] selectSort(int[] arr) {
for(int i = 0; i < arr.length; i++) {
int min = i;
for(int j = i + 1; j < arr.length; j++) {
if(arr[j] < arr[min]) {
min = j;
}
}
if(min != i) {
int t = arr[i];
arr[i] = arr[min];
arr[min] = t;
}
}
return arr;
}
}
运行结果:3 5 9 22 32 34 35 37 50 55 64 70 82 89