选择排序

思路分析:

  • 每次从数组中选出最大或最小的的,放在首位或末尾,使用下标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]);
        }
    }
}

 

posted @ 2020-04-15 18:29  Coding-Liu  阅读(110)  评论(0)    收藏  举报