排序算法 -- 选择排序(java)
Posted 先飞鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法 -- 选择排序(java)相关的知识,希望对你有一定的参考价值。
选择排序的算法思想:
1. 每次扫描数组,选出最值元素(技巧 定义变量假定数组的第一个元素为最值,然后扫描后续元素依次与假定的最值元素比较更新),然后后跟被扫描数组的第一个元素进行交换
2. 扫描n-1轮,每次扫描一轮,被扫描的数组的大小减去1,也就是剔除数组第一个元素
代码实现:
class Demo { public static void main(String[] args){ int[] nums = {1,9,5,2}; selectSort(nums); System.out.println(Arrays.toString(nums)); } public static void selectSort(int[] arr){ //轮次 for(int i = 0;i < arr.length-1 ;i++){ // n-1轮 int minVal= arr[i]; //假定的最值的索引 int minIdx= i; // 假定的最值的索引 for(int j=i+1;j<arr.length;j++ ) { if(minVal > arr[j]) { minVal = arr[j]; minIdx = j; } if (minIdx!= i ){ // 不相等才需要交换,否则不需要交换 arr[minIdx] = arr[i]; // i 和 minIdx的元素交换 arr[i] = minVal; } } } }
以上是关于排序算法 -- 选择排序(java)的主要内容,如果未能解决你的问题,请参考以下文章