基本思想
第一次从arr[0到]arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]到arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]到arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1]arr[n-1]中选取最小值,与arr[i-1]交换,…, 第n-1次从arr[n-2]~arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。
public class SearchSort {
public static void main(String[] args) {
int[] arr=new int[] {5,7,4,2,0,3,1,6};
selectSort(arr);
}
public static void selectSort(int[] arr) {
for (int i=0;i<arr.length;i++) {
int minIndex=i;
int min=arr[i];
for (int j=i+1;j<arr.length;j++) {
if(min>arr[j]) {
min=arr[j];
minIndex=j;
}
}
arr[minIndex]=arr[i];
arr[i]=min;
}
System.out.println(Arrays.toString(arr));
}
}