1.思路分析
- 第一轮,假定第一个元素为最小值,遍历数组直到找到比当前最小值小的元素,得到下标,重新确定最小值
- 遍历到数组中最后一个元素,找到最小值和下标
- 与第一个元素交换位置
- 第二轮从第二个元素开始,重复上述步骤,需要进行数组长度-1轮,得到有序数组
2.代码实现
package com.yc.day04;
import java.util.Arrays;
public class SelectTestDemo {
public static void main(String[] args) {
int arr[] = {3,8,1,6};
System.out.println("排序前:");
System.out.println(Arrays.toString(arr));
selectSort(arr);
System.out.println("排序后:");
System.out.println(Arrays.toString(arr));
}
public static void selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i;
int min = arr[i];
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < min) {
min = arr[j];
minIndex = j;
}
}
if(minIndex!=i){
arr[minIndex] = arr[i];
arr[i] = min;
}
}
}
}