Java学习手册:(数据结构与算法-排序)选择排序

算法之Java初级排序算法:选择排序与插入排序详解 在编程的学习旅程中,算法是提升编程能力的关键所在。今天,咱们一同深入研究Java中的初级排序算法——选择排序和插入排序,希望能和大家共同进步,让我们在算法的世界里探索得更深更远! 阅读详情

算法思想:对于一组数据,经过第一次排序得到最小的记录,然后将该记录与第一个记录的位置进行交换;接着对不包括第一个记录的其他记录进行第二轮比较,得到最小的记录并与第二个记录进行位置交换;重复该操作,直至进行比较的记录只有一个。

例子:举个栗子,对5,3,8,6,4这个无序序列进行简单选择排序,首先要选择5以外的最小数来和5交换,也就是选择3和5交换,一次排序后就变成了3,5,8,6,4.对剩下的序列一次进行选择和交换,最终就会得到一个有序序列。其实选择排序可以看成冒泡排序的优化,因为其目的相同,只是选择排序只有在确定了最小数的前提下才进行交换,大大减少了交换的次数。选择排序的时间复杂度为O(n^2)。

package com.haobi;
/*
 * 选择排序
 */
public class SelectSort {
	public static void selectSort(int[] array) {
		int temp = 0;
		int flag = 0;
		for(int i=0;i<array.length;i++) {
			temp = array[i];//基准元素
			flag = i;
			for(int j=i+1;j<array.length;j++) {//循环,直至找出[j,array.length]最小的元素
				if(array[j] < temp) {//如果数组中存在比temp小的数
					temp = array[j];//将该数赋值给temp
					flag = j;//数组下标赋值给flag
				}
			}
			if(flag != i) {//如果flag发生改变,则说明基准元素不是最小值,交换数据
				array[flag] = array[i];//将最小值赋值给基准元素
				array[i] = temp;//将之前存放在temp的基准元素值赋值给最小值所在的位置
			}
		}
	}
	public static void main(String[] args) {
		int[] array = {64,5,7,89,6,24};
		selectSort(array);
		for(int i=0;i<array.length;i++) {
			System.out.print(array[i]+" ");
		}
	}
}

程序输出结果如下:

5 6 7 24 64 89 

算法之Java排序:选择排序与插入排序的深度解析 在编程的学习旅程中,排序算法是重要的基础内容。今天,咱们一起深入研究Java中的选择排序和插入排序算法,从算法原理、性能分析到可视化展示与对比,希望能和大家共同进步,提升编程技能! 阅读详情

相关推荐

【排序算法】选择排序原理及Java实现

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

简约人生的博客 2万+

Java学习手册:数据结构与算法汇总

数据结构与算法程序题汇总如下:(不断更新中) 1、PAT(Basic Level)Practise-----1001 2、Java学习手册:(数据结构与算法-链表)如何实现单链表的增删操作? 3、Java学习手册:(数据结构与算法-链表)如何实现单链表排序? 4、Java学习手册:(数据结构与算法-链表)如何从链表中删除重复元素? 5、Java学习手册:(数据结构与算法-链表)如何找出单链表中的倒...

浩比的专栏 3248

【算法与数据结构】之选择排序

1.直接选择排序 ①定义: 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。 ②时间复杂度、空间复杂度和稳定性 时间复杂度:平均情况O(n2),最坏情况O(n2) 空间平均情况:O(1) 稳定性:不稳定 ③代码 public class SelectionSort { public static void main(String[] arg

qq_45703196的博客 1302

【JavaSE与数据结构】排序算法之冒泡排序,选择排序,插入排序与希尔排序

本篇文章带大家认识排序算法——冒泡排序,选择排序,插入排序与希尔排序,其中冒泡排序,选择排序,插入排序是基础的排序算法,希尔排序是插入排序的优化,四种排序算法全部都是基于比较的排序算法,本文将以图解动图的方式描述算法实现过程,实现代码为java。

未见花闻的博客 1523

Java数据结构与排序算法动态演示

在软件开发领域,数据结构和排序算法是构建高效程序的基础。Java作为一种广泛使用的编程语言,提供了丰富的数据结构和成熟的排序算法实现。为了深入理解这些概念,本章将介绍数据结构和排序算法的定义、分类及其在Java中的应用。排序算法是一类重要的基础算法,用于将一组无序的数据按照特定的顺序重新排列。其定义包括比较两个元素的大小并按照特定规则交换位置,直到整个数据序列变得有序。排序算法在计算机科学和工程中扮演着至关重要的角色,从数据库索引优化、数据查询,到图形渲染和科学计算等多个领域都有广泛应用。

weixin_33240461的博客 1093

JAVA数据结构与算法深入解析

本文还有配套的精品资源,点击获取 简介:数据结构与算法是编程领域的核心基础,尤其在JAVA语言中更显重要。文章详细探讨了JAVA中的基本数据结构,如数组、链表、栈、队列、集合和映射,以及常用算法,包括排序、查找、图和树算法。介绍了这些结构和算法在实际问题解决中的应用,并强调了在JAVA中实现它们时效率和内存管理的重要性。读者通过阅读《Java数据结构和算法中文第二版》,可以...

weixin_31869917的博客 1211

【Java数据结构与算法】选择排序

选择排序介绍及其实现

lolly1023的博客 725

Java基础排序算法:插入、冒泡与选择排序

Java 作为一门成熟的编程语言,为开发者提供了强大的内置工具,以实现高效且方便的排序操作。了解这些内置排序工具对于任何 Java 程序员来说都是不可或缺的技能,无论是处理基本数组还是复杂的集合类型。本章将向读者介绍 Java 中可用的主要排序工具,解释它们的工作原理、用法和最佳实践。当内置排序规则不符合需求时,我们可以传入一个Comparator实现来定义排序逻辑。例如,如果我们希望按照学生姓名的降序来排序学生数组:@Override});

weixin_42348783的博客 715

数据结构与算法之排序算法-选择排序

本篇文章讲解了排序算法中的选择类排序,希望能帮助到你

爱是小小的癌的博客 1195

微信小程序获取用户手机号全流程实战(附完整代码)

本文详细介绍了微信小程序获取用户手机号的全流程实战,包括前端授权、后端解密及安全合规要点。通过传统授权按钮和新版手机号快速验证组件两种方案,帮助开发者高效实现功能,并附完整代码示例。重点解析了微信小程序接口的使用技巧和常见问题解决方案,确保数据安全与用户体验。

weixin_29280219的博客 568

jetson agx orin开箱及接口介绍

jetson agx orin开箱及接口介绍

qq_58728069的博客 1万+

JAVA数据结构与算法之选择排序

前言 最近面临毕业就业,在复习数据结构与算法,为了更好地掌握,加深印象,所以决定写一些博客来知识复现。 温馨提示:这篇博客可能不适合刚学数据结构的新手。 算法的简单介绍 选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从 arr[0]~arr[n-1]中选取最小值,与 arr[0]交换,第二次从 arr[1]~arr[n-1]中选取最小值,与 arr[1]交换,第三次从 arr[2]~arr[n-1]中选取最小值,与 arr[2] 交换,…,第 i 次从 arr[i-1

iCanCode的博客 228

【CAD】【手把手带你写一个DXF&JAVA解析框架】02——整理DXF元数据实体类,涵盖重要属性与对照组码

本文系统梳理了DXF文件解析中的核心元数据类,重点分析了Tables段(图层、块记录)、Blocks段和Entities段的关键数据结构。通过详细的组码说明和对照代码实现,阐述了图层定义(DXFLayer)、块记录(DXFBlockRecord)、应用程序标识(DXFAppId)等表对象的属性构成;同时解析了直线(DXFLine)、多段线(DXFLwPolyLine)、圆弧(DXFArc)、文字(DXFText)等实体类的几何特征与属性定义。文章还构建了顶点(Vertex)、基类(DXFEntity、DXF

Wonder ZH 268

数据结构与算法(java版)

 数据结构与算法(java版)标签: java 数据结构 算法2017年12月28日 21:50:08102人阅读 评论(0) 收藏 举报 分类:数据结构与算法转自:http://blog.youkuaiyun.com/column/details/datastructureinjava.html 目录 (1)数据结构与算法概念解析 (2)数据结构之数组 (3)数据结构之栈 (4)数据结构之队列 (5)数据结...

大JAVA解决方案 8万+

YOLOv11改进 | 上采样篇 | YOLOv11引入DySample轻量级动态上采样器

虽然最近的基于内核的动态上采样器(如CARAFE、FADE和SAPA)的性能提升令人印象深刻,但它们引入了大量工作负载,主要是由于耗时的动态卷积和用于生成动态内核的额外子网。DySample模块的设计旨在解决现有动态上采样器的高计算开销和复杂性问题,同时提供更好的性能和效率。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 3128

微信公众平台 - 微信内置浏览器 WeixinJSBridge.invoke(‘xxx‘) API 报错:system:access_denied(常见于微信支付、分享朋友圈/转发好友等功能)解决方案

微信支付提示System:access_denied,调用微信支付返回:system:access_denied为什么,安卓版微信支付偶尔出现system:access_denied,微信公众号开发分享出现system:access_denied,system:access_denied如何解决?微信WeixinJSBridge.invoke(‘xxx‘)API调用后出现报错,微信内部H5WeixinJSBridge.invokesystem:access_denied,使用微信jssdk时报ac

🏆 前端领域优质创作者 5145

Java数据结构(九)——选择排序、堆排序

本文介绍了两种"选择"排序算法:选择排序和堆排序,堆排序的介绍注重思考过程并画图演示。

xiaokuer_的博客 1475

虚幻商城 Quixel 免费资产一键入库

在免费领取所有Megascans之后,我们只是有了获取 Quixel Megascans 资产的资格,但是没有入 Fab 库,本文将讲解通过脚本将 Quixel 所有资产入库 Fab。

一碗清深的博客 3318

数据结构与算法——选择排序

选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是:每次从未排序部分选出最小(或最大)的一个元素,放到已排序序列的末尾。该算法重复这一过程,直到所有元素都排序完成。

m0_65096391的博客 1340

全志V3S嵌入式驱动开发(解决kernel 5.2.y wifi驱动问题)

​【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 wifi模块,之前测试的时候,开发板上用的是esp8089,当时内核时4.14.y,测试也是通过的。链接地址在这里, https://blog.youkuaiyun.com/feixiaoxing/article/details/131178420?spm=1001.2014.3001.5501 那个时候测试的时候,我们就说过,wifi驱动可能是除了镜像制作之外,最复杂的一个

嵌入式-老费,一个分享专业嵌入式知识的blog 1158

2026年算法工程师常见面试简答题

本文摘要:文章系统梳理了机器学习与深度学习中的30个核心概念,涵盖模型优化、评估指标、经典算法和大模型应用等关键知识点。主要内容包括:1)过拟合与欠拟合的成因及解决方法;2)偏差-方差权衡原理;3)数据划分与交叉验证策略;4)分类/回归任务评估指标选择;5)逻辑回归、决策树、SVM等传统算法解析;6)梯度下降优化与正则化技术;7)CNN、RNN、Transformer架构对比;8)Embedding表示与RAG技术。特别强调面试高频考点如XGBoost改进、注意力机制原理等,并给出实际工程中的解决方案建议,

不务正业的猿 350

JAVA 数据结构与算法之————选择排序,冒泡排序,插入排序

JAVA 数据结构与算法之————选择排序,冒泡排序 1.选择排序: /* * 选择排序的时间复杂度为O(n2),空间复杂度为O(1) * * */ public class SelectSort<E extends Comparable> { private Swap<E> s = new Swap<>(); /*ascOrDest=“asc" 升...

qq_36007633的博客 528

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java算法:选择排序

选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是每次从待排序的元素中选择最小(或最大)的元素,放置在已排序的部分的末尾,直到所有元素都排序完成。遍历数组,将当前位置作为最小值的索引(假设为minIndex)。在未排序部分中遍历数组,从当前位置开始,找到最小值的索引。将最小值与当前位置的元素交换位置。这样,最小值将会被放置在已排序部分的末尾。重复步骤2和3,直到整个数组排序完成。// 遍历数组i < n - 1;i++) {// 当前位置作为最小值的索引。

忆亦何为的博客 2101

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java 与排序算法(2):选择排序

选择排序(Selection Sort)是一种简单的排序算法,其基本思想是在待排序序列中选择最小(或最大)的元素,将其与序列的第一个元素交换位置,然后在剩余的元素中继续选择最小(或最大)的元素,将其与序列的第二个元素交换位置,以此类推,直到整个序列有序为止。选择排序的时间复杂度为 O(n^2),其中 n 是待排序序列的长度。虽然选择排序的时间复杂度较高,但是它的实现简单,容易理解,并且在某些特定场景下仍然有着广泛的应用。

暗星涌动 2541

从零开始学习Java数据结构与算法

数据结构通常是指计算机存储组织数据的方式,需要使用数据结构来处理数据。而算法则是指解决问题的方法和步骤,简单来说数据结构是为算法服务的。

BXA 1897

Java-数据结构与算法-排序(冒泡排序,选择排序对比)

冒泡排序与选择排序 一,冒泡排序 冒泡排序(BubbleSorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。 二,冒泡排序优化: 因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素...

大美妞的博客 5077
上一篇: Java学习手册:(数据结构与算法-排序)快速排序
下一篇: Java学习手册:(数据结构与算法-排序)归并排序
浩比浩比
博客等级 码龄12年 395粉丝 202原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值