首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
1 代码实现
public static void sort(int[] a) {
for(int i=0;i<a.length;i++) {
int min = i;
for(int j=i+1;j<a.length;j++) {
if(a[min]>a[j]) {
min = j;
}
}
if(min!=i) {
int temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
}
public static void main(String[] args) {
int[] a = {8,5,2,6,9,3,1,4,0,7};
sort(a);
System.out.print(Arrays.toString(a));
}
2 运行结果
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
时间复杂度:O(n²)
空间复杂度:O(1)
不稳定
6968

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



