选择排序
2020-06-21
思想 #
第一趟从n个无序记录中选择关键字最小的记录与第1个记录交换,此时第一个记录为有序
第二趟从第二个记录开始的n-1个无序记录中选择关键字最小的与第2个记录交换,此时前两个记录有序
……
如此下去,直到无序序列只剩最后一个元素,排序结束
代码实现 #
public void selectSort(int[] a) {
for(int i=0;i<a.length;i++){
//记录最小元素的位置
int min=i;
//该循环来寻找最小元素的位置
for(int j=i+1;j<a.length;j++){
if(a[j]<a[min]){
min=j;
}
}
//交换第i个元素和最小元素
int temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
复杂度 #
时间复杂度:O(n²)
空间复杂度:O(1)
稳定的排序算法