从arr[0]到arr[n-1]的数组里找出最小的,和第一个即arr[0]交换,确定最小值。
第二趟,从arr[1]到arr[n-1]的数组里找出最小的,和第二个即arr[1]交换,确定第二个小值。依次类推到数组结束(n为数组长度,如果从大到小就找最大值)
import java.util.Arrays;
public class SelectSort {
public static void main(String[] args) {
int[] arr = {2, 4, 1, 6, 3, 9};
for (int i = 0; i<arr.length-1; i++){
//寻找本轮最小数 默认第一个最小,与后面依次比较
int minIndex = i;
int min = arr[i];
for(int j = i; j<arr.length-1;j++){
if(arr[j]<min){
min = arr[j];
minIndex = j;
}
}
//交换最小数和第一个,将最小数放在最前面
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
System.out.println(Arrays.toString(arr));
}
}