算法入门-排序算法-选择排序-详解
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;
}
}