1.思路
选择排序的思想是,每一趟在剩余数字选出一个最大(最小)的数,与前一个比较。把该数放到前面已经排好的队列中,整个过程下来,这一列数据就排好了。
2.代码实现
private int[] selectUpSort(int[] a){
//选择排序的思想是一次只排一个 小的放前面 每一次下来都会选择最小的一个
/* for(int i=0;i<a.length-1;i++){
//交换了很多次 方法不妥
for(int j=i+1;j<a.length-1;j++){
if(a[j]<a[i]){
int tem = a[j];
a[j]= a[i];
a[i] = tem;
}
}
}*/
// 选择排序的思想是一次只排一个 小的放前面 每一次下来都会选择最小的一个 每一个与之前的那个比较
for (int i=0,k=0;i<a.length-1;i++,k=i){
for (int j=0;j<i+1;j++){
if(a[j]<a[k]){
k=j;
}
a[k] = temp;
}
}
return a;
}
注释部分由于每次都和前面的交换,每一轮循环的时候可能会执行好多次与排好序的队列的交换。使用我们采用在余下的里面找到最小的,直接与之前的队列交换。
网友评论