简单选择排序
选择排序主要是每一趟从待排序列中选取一个关键码最小的记录,也即第1趟从n个记录中选取关键码最小的记录,第2趟从剩下的 n-1个记录中选取关键码最小的记录,直到整个序列的记录选完。这样,由选取记录的顺序,便得到按关键码有序的序列。
简单选择排序的过程为:第1趟,从n个记录中找出关键码最小的记录与第1个记录交换;第2趟,从第2个记录开始的 n-1 个记录中再选出关键码最小的记录与第2个记录交换;如此,第 i 趟,则从第 i 个记录开始的 n-i+1 个记录中选出关键码最小的记录与第 i 个记录交换,直到整个序列按关键码有序。
代码展示
package demo4;
import java.util.Arrays;
public class SelectSort {
public static void main(String[] args) {
int[] arr = new int[]{3,2,5,8,9,4,6,1,5};
selectSort(arr);
System.out.println(Arrays.toString(arr));
}
//简单选择排序
public static void selectSort(int[] arr){
//遍历所有的数
for(int i=0;i<arr.length;i++){
int minIndex = i;
//把当前遍历的数和后面的所有数依次进行比较,并记录下最小的数的下标
for(int j=i+1;j<arr.length;j++){
//如果后面比较的数比记录的最小的数小
if(arr[minIndex]>arr[j]){
//记录下最小的那个数的下标
minIndex = j;
}
}
if(i!=minIndex){
int temp = arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
}
}
}