定义:
假设有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);
}
}
本文详细介绍了选择排序算法的基本概念,包括其定义、特点及时间复杂度,并提供了完整的Java实现代码示例。选择排序是一种简单直观的比较排序算法,在n个记录中每次找出最小的元素放到已排序序列的末尾。

被折叠的 条评论
为什么被折叠?



