一、选择排序原理(从小到大)
对一个给定的数组:
第一次从arr[0到]arr[n-1]中选取最小值,与arr[0]交换;
第二次从arr[1]到arr[n-1]中选取最小值,与arr[1]交换,…,
第i次从arr[i-1]arr[n-1]中选取最小值,与arr[i-1]交换,…,
第n-1次从arr[n-2]~arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到从小到大排序的有序数组
二、代码实现
public static void main(String[] args) {
int[] arr = new int[]{1,0,2,4,3,5,7,6};
selectSort(arr);
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 (min > arr[j]){
min = arr[j];
minIndex = j;
}
}
arr[minIndex] = arr[i];
arr[i] = min;
}
}