/**
* @Author: repator
* @Date: 2019/8/11 23:42
* @Description: 选择排序
* 算法思想:每次找比第一个小的,放在前面,使前面的有序。
**/
public class SelectSort {
public static void main(String []args){
int[] a={10,9,8,7,5,3,3,23,89};
System.out.println("排序前:");
for(int i=0;i<a.length-1;i++){
System.out.print(a[i]+" ");
}
selectSort(a);
System.out.println("排序后:");
for(int i=0;i<a.length-1;i++){
System.out.print(a[i]+" ");
}
}
public static void selectSort(int []arr){
for(int i=0;i<arr.length-1;i++){
int indexsmall=i;//i之前全部为有序,假设第i个为最小,记录下标
for(int j=arr.length-1;j>i;j--){ //从后往前遍历,如果找到比第i个更小的,将最小元素下标更新
if(arr[j]<arr[indexsmall]){
indexsmall=j;
}
}
int tem=arr[indexsmall];//经过上边从后向前遍历,找到了最小元素位置,将其与第i个元素交换
arr[indexsmall]=arr[i];
arr[i]=tem;
}
}
}