定义一个position(位置)并取到arr[positon]对应的值,与数组中的值循环进行比对,如果数组值小,则取代position,再进行对比,最终找到最小值以及它的位置。然后和第一个位置进行调换。
package javaBasic;
import java.util.Arrays;
public class SelectSortTest {
public static void main(String[] args){
int[] array = {49,38,65,97,76,13,27};
SelectSortTest ss = new SelectSortTest(array);
ss.sort();
}
private int[] arr=null;
public SelectSortTest(int[] arr){
this.arr = arr;
System.out.println("SelectSortInit:" + Arrays.toString(this.arr));
}
public void sort(){
int position = 0;
for (int i = 0; i < arr.length; i++){
int j=i+1;
position =i;
int temp = arr[i];
for (;j < arr.length;j++){
if(arr[j] < temp){
temp = arr[j];
position = j;
}
}
arr[position] = arr[i];//最小位置的值和第一个值对调
arr[i] = temp;
System.out.println(Arrays.toString(arr));
}
}
}