算法介绍
选择排序:从头至尾扫描序列,循环排列arr.length-1次,每一次循环找出序列中最小值,用index记录其下标,放到序列最前方,下一次循环应跳过有序序列
如下图
实现
public class SelectSort {
public static void selectSort(int[] arr) {
for(int i=0;i<arr.length-1;i++) {
int index=i;
int min=arr[i]; //从第i+1个数开始比较
for(int j=i+1;j<arr.length;j++) { //找i+1后最小值的值与下标
if(min>arr[j]) { //找最小值
min=arr[j];
index=j; //获取下标
}
}
if(index!=i) { //如果最小值不是arr[i],则调换
//存储最小值
arr[index]=arr[i];
arr[i]=min;
}
System.out.println("第"+(i+1)+"次排序结果:"+Arrays.toString(arr));
}
}
public static void main(String[] args) {
int arr[]= {7,2,5,8,1,3,4,6};
selectSort(arr);
}
}
结果