算法入门-排序算法-选择排序-详解

2021-03-19  本文已影响0人  大象蹦蹦

一、核心思想

找出所有元素中最大的元素,将最大元素放到队尾
即交换队尾元素与最大元素的位置

二、过程分析

预定义最大元素索引位置maxIndex=0
从位置j=1开始遍历,值与位置0的元素对比,如果当前值大于位置0的元素,将当前位置的索引赋值给maxIndex,直到遍历完成
每进行一轮比较,就会找出一个最大值,且接下来的比较中已找出的最大值不需要参与;
需要进行多少轮比较:i 的边界为0到nums.length-1
每轮需要参与比较的元素数:j 边界为0(包含预定义的maxIndex)到nums.length-i

三、代码

public void xuanZe(){
    int[] nums =new int[]{1,5,3,9,6,4};
    for (int i=0;i<nums.length-1;i++){      //比较轮数
        int maxIndex=0;
        for (int j=1;j<nums.length-i;j++){
            if (nums[maxIndex]<nums[j]){
                maxIndex=j;
            }
        }
        int temp=nums[maxIndex];
        nums[maxIndex]=nums[nums.length-i-1];
        nums[nums.length-1-i]=temp;
    }
}

上一篇下一篇

猜你喜欢

热点阅读