第一个for循环下设置minindex为当前第一个for循环所在的位置作为最小索引,第二个for循环中第一个for循环开始的后一个位置从前到后寻找最小值的索引即minindex。进行第二个循环中找出的最小值索引mindex对应值跟第一个for循环最开始i位置对应值进行交换。
package ZuoShenJiChu; import java.util.Arrays; public class SelectSort { public static void main(String[] args) { int arr[]={2,1,4,98,6,3,55,3}; selectSort(arr); System.out.println(Arrays.toString(arr)); } public static void selectSort(int []arr) { for (int i=0;i<arr.length-1;i++) { int minindex=i; for (int j=i+1;j<arr.length;j++) { minindex=arr[j]<arr[minindex]?j:minindex; } swap(arr,i,minindex); } } public static void swap(int [] arr,int i,int j) { int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } }