Java排序算法二:选择排序

Java排序算法——选择排序(Selection Sort) 上次总结了一下冒泡排序,这次来看看同样非常简单的选择排序 上期冒泡排序传送门: Java排序算法——冒泡排序(Bubble Sort)https://blog.youkuaiyun.com/babbfqb93/article/details/123005968?spm=1001.2014.3001.5501 选择排序(Selection Sort)就是通过选择一个数组中的最大(小)值排序到数组的头部位置(和头部位置交换)接下来循环剩余数组找到次最大(小)值排序到第二的位置,以此类推,直到所有的数字都被选择完成之后 阅读详情

选择排序(升序):
1,通过循环找到数组中的最小值放到第1位,然后再剩余元素中找到最小值放到第2位

高亮标记的元素就是下一轮要找出最小元素的范围,找出最小元素放到高亮标记的最左边

代码:

/**
 * 找到最小值交换位置
 */
public void forInner() {
	int arr[] = {9,5,7,3,10,4};
	//找出数组中最小的元素和第一个元素交换
	int minIndex = 0;
	for (int i = minIndex + 1; i < arr.length; i++) {
		if (arr[i] < arr[minIndex]) {
			minIndex = i;
		}
	}
	int temp = arr[0];
	arr[0] = arr[minIndex];
	arr[minIndex] = temp;
	System.out.println(Arrays.toString(arr));
	//从第2个元素开始到数组最后1个元素中找出最小值和第2个元素交换
    //直到从倒数第2个元素和倒数第1个元素找最小值,将最小值和倒数第2个元素交换
}

/**
 * 选择排序(升序)
 */
public void select() {
	int arr[] = { 9, 5, 7, 3, 10, 4 };
	System.out.println(Arrays.toString(arr));
	for (int j = 0; j < arr.length - 1; j++) { //控制轮数
		int minIndex = j;
		for (int i = minIndex + 1; i < arr.length; i++) { //指定范围找到最小值
			if (arr[i] < arr[minIndex]) {
				minIndex = i;
			}
		}
		int temp = arr[j];
		arr[j] = arr[minIndex];
		arr[minIndex] = temp;
//			System.out.println(Arrays.toString(arr));
	}
	System.out.println(Arrays.toString(arr));

}

 

【排序算法】选择排序原理及Java实现 选择排序是一种简单直观的排序算法,其基本原理如下:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录的位置与第一个记录的位置交换;接着对不包括第一个记录以外的其他记录进行第二次比较,得到最小记录并与第二个位置记录交换;重复该过程,知道进行比较的记录只剩下一个为止。 阅读详情

相关推荐

华大HC32F460 TCP Client 实验

华大HC32F460 TCP Client 实验

ZhuoWuKeJi的博客 649

选择排序

对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了,然后进行判断,如果这个元素的下标不是第一个元素的下标,就让第一个元素跟他交换一下值,这样就找到

SpringSunLee的专栏 438

免费替代Cursor!TRAE中文版这些隐藏功能90%的人不知道

本文深度评测了免费AI编程工具TRAE中文版,揭示其超越代码补全的隐藏功能。重点介绍了其SOLO模式如何重塑从需求到部署的全流程开发,以及对微信小程序、Taro、Ant Design Pro等国产技术栈的深度适配能力,为中文开发者提供了高度本地化的高效解决方案。

gray5的博客 839

Java排序算法总结(二):选择排序

选择排序的基本操作就是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。算法不稳定,O(1)的额外的空间,比较的时间复杂度为O(n^2),交换的时间复杂度为O(n),并不是自适应的。在大多数情况下都不推荐使用。只有在希望减少交换次数的情况下可以用。   基本思想        n个记录的文件的直接选择排序可经过n-1趟直接选

pplsunny----舞动青春 1324

VMvare 桥接模式无法联网、没有未桥接的主机网络适配器,无法将网络更改为桥接状态。

很多程序员,整天沉浸在业务代码的 CRUD 中,业务中没有大量数据做并发,缺少实战经验,对并发仅仅停留在了解,做不到精通,所以总是与大厂擦肩而过。我把私藏的这套并发体系的笔记和思维脑图分享出来,理论知识与项目实战的结合,我觉得只要你肯花时间用心学完这些,一定可以快速掌握并发编程。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!战项目源码讲义》点击传送门即可获取!**

q16974058的博客 4330

LabVIEW Modbus通讯实战:从安装库到读写寄存器的完整避坑指南

本文详细介绍了LabVIEW与Modbus通讯的完整实战指南,从安装库文件到读写寄存器的全流程操作,帮助开发者避开常见问题。通过虚拟串口配置、主机配置实战和高级调试技巧,提升工业自动化领域的通讯效率与可靠性。

milk8的博客 740

Java排序算法(二):简单选择排序

[基本思想] 在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数种再找出最小的与第二个位置的数交换,如此循环至倒数第二个数和最后一个数比较为止。 算法关键:找到最小的那个数,并用变量记住它的下标。 [java实现] public class SimpleSelectionSort { public static void main(String[] arg

技术人生 1100

物联网技术-第2章-物联网技术架构

• 物联网具有很强的异构性• 为实现异构设备之间的互联、互通与互操作,物联网需要以一个开放的分层的可扩展的为框架。

m0_73804764的博客 2977

Java排序算法(二):选择排序

选择排序是最简单直观的一种算法,基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,选择排序是不稳定排序。

十三月的博客 323

基于Python的船舶AIS数据爬取与分析:从数据采集到可视化实战

本文详细介绍了如何使用Python构建一个完整的船舶AIS数据爬取与分析系统。文章从AIS系统的基本原理讲起,逐步深入到数据采集、存储、清洗、分析和可视化的全流程。我们将使用最新的Python技术栈,包括aiohttp异步爬虫、MongoDB存储、Pandas数据处理以及Pydeck三维可视化等。本文提供了完整的代码实现,并探讨了在实际应用中可能遇到的问题及其解决方案。关键词:AIS数据、Python爬虫、异步IO、数据可视化、海事分析。

2201_76125261的博客 811

LPDDR6来了!到底比LPDDR5/5X强在哪?从速度到总线,技术细节一次说清!

LPDDR6不仅仅是速度快点、位宽大点那么简单,它是一次架构级的革新,从引脚、总线、时钟管理到Burst协议全部升级。🎯我们正在迈入一个“AI优先”的时代,内存架构也必须跟上。对于做芯片、做整机、做系统的你,理解LPDDR6的技术变化,提前规划测试方案,是现在就该启动的动作!

weixin_43199439的博客 1284

java排序算法(二):直接选择排序

java排序算法(二):直接选择排序 一、基本概念 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置(注:要把最大最小的元素和起始的元素交换),然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。     二、算法特点 是否稳定:  false 平均时间复杂度:O(n^2) 最差

Java面试辅导-海龟老师 661

JS逆向-7881游戏平台Lb-Sign参数和Lb-Timestamp参数

本文是该专栏的第79篇,后面会持续分享python爬虫干货知识。本文以7881游戏平台为例,通过JS逆向获取它的lb-sign参数和lb-timestamp参数生成规律。针对lb-sign和lb-timestamp两个参数具体的“逆向”思路逻辑,笔者将在本文进行详细说明,并且将在正文结合“完整代码”来详细介绍。废话不多说,具体细节部分以及详细思路逻辑,跟着笔者直接往下看正文部分。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 1220

Java排序算法(二):直接选择排序

Java排序算法(一):直接选择排序 直接选择排序的基本操作就是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完,它需要经过n-1趟比较。算法不稳定,O(1)的额外的空间,比较的时间复杂度为O(n^2),交换的时间复杂度为O(n),并不是自适应的。在大多数情况下都不推荐使用。只有在希望减少交换次数的情况下可以用。 基本思

tjut9mmhnp的专栏 367

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java常用排序算法(二):选择排序

一.简单选择排序: 基本思路: 遍历序列, 把最大值放置在序列的第一位, 次最大值放置在的二位,   一直循环到最后一位跟倒数最后一位的比较为止. 实例: 初始序列:  34, 08, 23, 99, 12, 34 第一次排序:   99, 34, 08, 23, 12, 34 第二次排序:  99, 34, 08, 23, 12, 34 第三次排序:  99, 34, 3

Leo_eight的博客 680

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

排序算法(二):JAVA实现选择排序

简单选择排序:遍历数组,两两比较,如果反序就交换,遍历完成后,也就排好了。public class SelectSort { public static void main(String[] args) { int[] arr = {15,58,42,12,1,47,65,6,89,47,56}; sort(arr); } private st

sinat_36713319的博客 271

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java排序算法(二):直接选择排序 .

Java排序算法(二):直接选择排序 直接选择排序的基本操作就是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完,它需要经过n-1趟比较。算法不稳定,O(1)的额外的空间,比较的时间复杂度为O(n^2),交换的时间复杂度为O(n),并不是自适应的。在大多数情况下都不推荐使用。只有在希望减少交换次数的情况下可以用。 基本思

u014344668的专栏 564

Java程序员必须掌握的排序算法Java实现整合二 :选择排序

在数据规模较小时(9W内),直接插入排序,简单选择排序差不多。当数据较大时,冒泡排序算法的时间代价最高。性能为O(n^2)的算法基本上是相邻元素进行比较,基本上都是稳定的。

心海博客 567

排序算法Java实现(二):选择法排序(Selection Sort)

选择法排序的思路: 第一步:把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来比较完后,第一位就是最小的;  第二步:然后再从第二位和剩余的其他所有位进行比较,只要比第二位小,就换到第二个位置来                比较完后,第二位就是第二小的                以此类推,最终就完成从小到大的排序;                             ...

Jungle_Rao的博客 387

java中的三种排序方法使用:选择排序,冒泡排序,sort方法排序。

1)选择排序 思想:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,放在数列的最前(或最后),直到待排序的数据元素全部排完。 2)冒泡排序 思想:对比相邻元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把大的元素移到数组后面(也可以反过来)。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 3)sort方法排序 思想:直

Iro的专栏 2545

排序算法(二):选择排序

选择排序是一种简单、易理解的排序算法,适合用于学习排序的基本思想。尽管它的时间复杂度较高,适用于小规模数据排序,但在实际应用中,可以根据不同场景选择更高效的排序算法,如快速排序或归并排序。通过本文的分析和代码示例,希望大家能够深入理解选择排序的工作原理,能够在需要的场合灵活运用它,并为进一步学习其他排序算法打下坚实的基础。选择排序虽然简单,但它依然是计算机科学中不可忽视的经典算法之一。希望你在学习排序算法的过程中,能够通过这篇文章掌握选择排序的精髓。

一碗黄焖鸡三碗米饭的博客 1090

排序算法图解(二):选择排序

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。本文被Java数据结构专栏收录, 持续更新中。

黄小黄的博客 1767

java排序算法(二)选择排序

利用java实现选择排序算法,选择排序原理记录元素所在的位置(索引),然后进行交换,即把最大的数或者最小的数和最后一位或者第一位进行交换,保证了他们的最小最大位置,然后依次进行第二位,第三位。。。。直至所有的数都保证在正确的顺序位置。

没有永远的渣渣 1万+
上一篇: Java排序算法一:冒泡排序
下一篇: SQL Server 学习二:管理数据表
springff
博客等级 码龄12年 9粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值