一.基本思想
初始时从队列中选出最大(小)的元素放到序列的起始位置,再从剩余的序列中选出最大(小)的元素放在已排序列的末尾,以此类推,直到所有元素均排序完毕
二.概览
分类:内部选择排序
数据结构:数组
最差时间复杂度:O(n^2)
最优时间复杂度:O(n^2)
平均时间复杂度:O(n^2)
所需辅助空间:O(1)
稳定性:不稳定
三.代码实现
public class Selection{
public static void sort(int a[]){
int N = a.length;
for(int i=0;i<N;i++){
int min = i;
for(int j=i+1;j<N;j++){
if(a[j]<a[min])min=j;
}
int t = a[min];
a[min] = a[i];
a[i] = t;
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/b730fdcfc903845ffe5643cdc2a0a680.gif)