选择排序
原理:每次取剩余数组中第一个数当为最大(小)值,然后一次与后面的值进行比较,如果有比当前值大(小)的值,就记录下标,循环完之后就可以找到当前数组中最大(小)值的下标,然后在把当前下标与当前数组遍历开始地方的值进行交换,排除当前值,剩下的依次进行比较,交换值即可!
代码实现
package com.lian.convert;
import com.alibaba.fastjson.JSON;
/**
* @author :LSS
* @description: 选择排序
* @date :2021/3/30 13:58
*/
public class Select {
public static int [] SelectSort(int []nums){
//定义默认最大值下标,中间变量
int index,temp;
//外层for循环控制循环次数
for (int i = 0 ; i < nums.length;i++){
//将当前第一个数默认为最大值
index = i;
//内层for循环控制比较次数,从当前位置i的下一位开始循环
for (int j = i+1;j<nums.length;j++){
//如果有比当前值大的index就替换为值大的下标
if (nums[index] < nums[j])
index = j;
}
//一次循环结束,当最大值与当前i位置的元素替换(即把得出的最大值放在前面)
temp = nums[index];
nums[index] = nums[i];
nums[i] = temp;
}
// 循环结束,返回降序排列的数组
return nums;
}
public static void main(String[] args) {
//要排序的数组
int[] nums = {1, 4, 6, 32, 4, 13, 9};
//将排序之后逇数组转化为字符串并输出
System.out.println(JSON.toJSONString(SelectSort(nums)));
}
}
总结
不积跬步,无以至千里!