定义:
假设有n个记录的序列,由最左边开始排序,每次排序都是在n-i+1个元素中选出最小的记录,与第i个元素进行交换。
特点:
每次排序只会发生一次数据交换。
时间复杂度:最好是0,最坏是O(n^2)
实现:
public class Selection {
public void sort(int[] arr){
int min=0;
for(int i=0;i<arr.length;i++){
min=i;
for(int j=i+1;j<arr.length;j++){
if(arr[j]<arr[min]){
min=j;
}
}
if(min != i){
SortUtils.swap(arr,i,min);
}
SortUtils.print(arr);
}
}
public static void main(String[] args){
int[] array=SortUtils.getArray();
Selection selection=new Selection();
selection.sort(array);
}
}