通过两个记录值来存储最小的数以及最小数的下标,之后遍历比较一遍后面的元素,如果发现比记录值更小的元素,就将记录值其赋值为该元素。知道最后,然后将第一个与最小的交换,如此往复
**图解**
package top.ltyzqhh.Annotation;
import java.util.Arrays;
public class SelectSort {
public static void main(String[] args) {
int[] a={324,234,532,1313,1,3,553};
System.out.println(Arrays.toString(a));
selectSort(a);
System.out.println(Arrays.toString(a));
}
public static void selectSort(int[] array){
int min=0;
int minindex=0;
//外层循环,判断我们这个要走多少次;
for (int i = 0; i <array.length-1 ; i++) {
min=array[i];//记录最小的数 默认第一个数为最小值
minindex=i;//记录最小数的下标
//内层循环,将记录值与元素比较,如果记录值<该元素就将 该将记录值赋值为该元素。
for (int j = i+1; j <array.length ; j++) {
if (min>array[j])
{
min=array[j];
minindex=j;
}
}
if(i!=minindex) {
//将第一个值与最小值做比较。
array[minindex] = array[i];
array[i] = min;
}
}
}
}