思路分析:
- 每次从数组中选出最大或最小的的,放在首位或末尾,使用下标pos进行记录,循环结束得到最终的pos,那么在进行交换
- 注意pos的设置和参数条件的设置
代码:
public class Selection {
public static void main(String[] args) {
int[] array = {5,7,3};
Selection select = new Selection();
select.Sort(array);
}
public void Sort(int[] arrays){
int temp = 0;
int pos = 0;
for(int i = 0; i < arrays.length; i++){
pos = i; //注意这个位置的pos设置,因为后面的每次交换都是和i交换
for(int j = i; j < arrays.length; j++){
if(arrays[j] < arrays[pos]){ //每次选取最小的
pos = j;
}
}
temp = arrays[i];
arrays[i] = arrays[pos];
arrays[pos] = temp;
}
for(int i = 0; i < arrays.length; i++){
System.out.println(arrays[i]);
}
}
}