栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

选择排序,看这一篇就懂了 Java实现选择排序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

选择排序,看这一篇就懂了 Java实现选择排序

原理:每次从该数组中选择最小的那个数,与该数组中第一个元素进行交换

接下来代码实现,会打上详细的注释,看懂后希望给作者点个赞,支持原创

public class SelectionSort {
	public void sort(int[] nums) {
		//这里i < nums.length - 1是因为一共n - 1轮排序,因为每次都是挑最小的,挑完n - 1次后,最后一个n肯定是最大的数字
		for(int i = 0; i < nums.length - 1; i++) {
		
			//默认最小值为本轮循环的第1个值,后续排序会将数组分为连个数组,前面的为已经排好序的,而默认的最小值就是后面未排序数组的第1位
			int min = nums[i];
			
			//最小值的索引位置
			int minIndex = i;
			
			//这里j为i后面的那个。意思是从i之后的元素开始进行比较
			for(int j = i + 1; j < nums.length; j++) {
				//如果最小值 > nums[j],说明假定的min并不是最小的
				if(min > nums[j]) {
					min = nums[j]; //重置min
					minIndex = j; //重置minIndex
				}
			}

			//本轮for循环结束,说明本轮已经在数组中定位到了最终min和minIndex
			//本来默认minIndex为i,如果此时 minIndex != i 了,说明发生过重置,这里进行最小值和第一位数字进行交换的操作
			if(minIndex != i) {
				//完成交换
				nums[minIndex] = nums[i]; //nums[i]即为第一位,此时不是最小值,先把大值给假的minIdex
				nums[i] = min; //nums[i]即为第一位,此时已经得到最小值了
			}
		}
		//结束最终的for循环
		System.out.println(Arrays.toString(nums));
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/319006.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号