选择排序原理:
选择排序的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换.
public class SelectionSort {
public static void main(String[] args) {
System.out.print("选择排序:");
int [] a={1,23,78,34,90,5,10,123,002};
//选择排序的优化
for(int i=0;i<a.length-1;i++){//做第i趟排序
int k=i;
for(int j=k+1;j<a.length;j++){//选最小的记录
if(a[j]<a[k]){
k=j; //记下目前最小值的位置
}
}
//在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换
if(i!=k){
int tmp=a[i];
a[i]=a[k];
a[k]=tmp;
}
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+",");
}
}
}
控制台的输出结果为:选择排序:1,2,5,10,23,34,78,90,123,