将数组第一个数字,依次和数组后面的数字比较,将小的数字放到最前面。。
1 public class SelectSort { 2 public static void main(String[] args) { 3 int[] arr=new int[]{3,8,2,9,4,1,6,8,10}; 4 System.out.println(Arrays.toString(arr)); 5 selectSort(arr); 6 System.out.println(Arrays.toString(arr)); 7 } 8 9 public static void selectSort(int[] arr){ 10 //Z遍历所有的数 11 for(int i=0;i<arr.length-1;i++){ 12 int minIndex=i; 13 //把当前遍历的数和后面所有的数依次进行比较,并记录下最小的数的下标。 14 for(int j=i+1;j<arr.length;j++){ 15 //如果后面比较的数比记录的最小的数小 16 if(arr[minIndex]>arr[j]){ 17 //记录下最小 的那个数的下标 18 minIndex=j; 19 } 20 } 21 //如果最小的数和当前遍历数的下标不一致,说明下标为minIndex的数比当前遍历的数更小 22 if(i!=minIndex){ 23 int temp=arr[i]; 24 arr[i]=arr[minIndex]; 25 arr[minIndex]=temp; 26 } 27 28 } 29 30 } 31 32 } 33