基本原理:第一轮比较数组内每个元素的大小,将比较得出的最小元素放到数组的最左边;
第二轮比较除之前一轮得出的最小元素之外的其他元素·,然后将第二轮比较得出的最小元素放在第一轮得出的最小元素相邻右边的位置;
······其他元素大小比较以此类推。
下面是一段代码演示:
/*
从小到大,选择排序
*/
public class Test15{
public static void main (String [] args){
int count[] = {8,4,2,1,23,344,12,5,12,19,21,51,9};
int tools = 0;
for (int i=0;i<count.length;i++){
int num1 = i;
//控制循环时数组内参与比较大小的个数
//控制循环次数
for (int j=i;j<count.length;j++){
/*数组内两个相邻数比较,如果条件成立将较小数
下标赋给变量 num1 ,j 自加1后用下一个数继续
和之前一次比较出来的较小值比较*/
if (count[j]<count[num1]){
num1 = j;
}
}
//将本次循环比较出来的最小值换到数组最左边
tools = count[i];
count[i] = count[num1];
count[num1] = tools;
}
for (int k=0;k<count.length;k++){
System.out.print(count[k]+"-");
}
}
}
输出结果: