实例代码
package com.hope;
import java.util.Arrays;
public class ChooseArray {
public static void main(String[] args) {
int[]arr={2,5,1,4,7};
System.out.println("排序前:"+ Arrays.toString(arr));
for (int i = 0; i <arr.length; i++) {//轮数
int min=arr[i];//假设第一个值 i=0 arr[i] 是最小值
int idx=i;//最小值的下标
for (int j = i+1; j <arr.length; j++) { //int j = i+1 因为已经假设第一个值是最小值了 所以从第二个值开始遍历
if(min>arr[j]){
/*
比较出min 不是最小值 那就把最小值赋给min
交换数据: 把min=1(arr[j]);
idx:0(原始下标)=2(j现在最小值的下标)
*/
min=arr[j];
idx=j;
}
}
/*
arr[idx]下标为2 arr[i]下标为0
已经找到比下表为0的arr[i]的值更小的值
把最初假设的arr[0]的值比arr[2]大 把值赋给arr[2]
arr[2]=arr[0]
*/
arr[idx]=arr[i];
/*
min是已经查找过的最小值
arr[0]=1;
1最小值在min中还未放到arr[i]
arr[i当前下标0]=min 1最小值
*/
arr[i]=min;
}
System.out.print("排序后:");
for (int i = 0; i <arr.length ; i++) {
System.out.print("\t"+arr[i]+"\t");
}
}
}
实现结果
排序前:[2, 5, 1, 4, 7]
排序后: 1 2 4 5 7