package algorithm;
import java.util.Arrays;
public class SelectTest2 {
public static void main(String[] args) {
// int[]arr= {56,69,45,2,1};
int[]arr= {101,34,119,1};
int min=0;//标志每次的最小值
int minIndex=0;//标志每次最小值对应的位置
int len=arr.length;//数组的元素的个数
System.out.println("元素的个数"+len);
System.out.println("原始数组"+Arrays.toString(arr));
for(int i=0;i<len-1;i++) {//趟数,数组元素个数-1
minIndex=i;//记住它的最小下标,在后面判断时看是否需要交换,因为如果需要交换的时候,minIndex变为了j(说明最小值更新了),所以后面minIndex==i的话,说明
//没有进入最小值更新的代码片段,则没必要进行交换
min=arr[i];//假定最小值是arr[i];
for(int j=i+1;j<len;j++) {//比较的次数
if(arr[j]<min) {
min=arr[j];//更新最小值
minIndex=j;//记住最小下标
}
}
//每一趟下来看是否有必要交换吗
if(minIndex!=i) {
//不一样,则交换
arr[minIndex]=arr[i];
arr[i]=min;
}
System.out.println("第"+(i+1)+"排序结果"+Arrays.toString(arr));
}
}
}
06-09
11-29
3328
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
04-15
9693
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)