Java常用排序算法之选择排序

Centos7配置阿里云镜像源的教程 查看你的Centos版本,版本过低会导致安装失败,验证网络是否可以连接阿里云镜像,使用阿里云是需要网络的。# wget命令下载: wget [options] [url]# curl命令下载: curl [options] [url]我上面这个图片由于电脑问题是还没有加载完的。删除原来或者之前的yun源。 阅读详情

选择排序(Selection sort):是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
步骤:
首先从有n个数据的原始数组中通过依次比较找到最小的数据,将其先赋值给中间变量arr[index]
再将arr[index]与arr[0]交换
接着从剩下的(n-1)个数据中再找到最小的数据,将其先赋值给中间变量arr[index]
再将arr[index]与arr[1]交换
不断重复上述过程,直到最后完成两个数据的交换。
最终得到递增数据
java实现代码:

public class SelectionSort {
    static final int SIZE=10;//为数组长度定义一个常数数组长度
    public static void main(String[] args) {
        int arr[]=new int[SIZE];
        for(int i=0;i<arr.length;i++){
            arr[i]=(int)(Math.random()*100);
        }//通过随机产生一组数据初始化数组
        System.out.println("排序前的数组:");
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
        System.out.println();
        selectionSort(arr);//调用选择排序方法
        System.out.println("选择排序后的数组:");
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
        System.out.println();
    }
    private static void selectionSort(int[] arr) {
        int temp,index;
        for(int i=0;i<arr.length-1;i++){
            index=i;
            for(int j=i+1;j<arr.length;j++){
                if(arr[j]<arr[index]){
                    index=j;
                }
            }//找到数组中最小的数赋给arr[index]
            if(index!=i){
                temp=arr[i];
                arr[i]=arr[index];
                arr[index]=temp;
            }//将每一次得到的最小数据arr[index]与arr[0],[1],,,交换
            System.out.print("第"+(i+1)+"步排序后结果:");
            for(int x=0;x<arr.length;x++){
                System.out.print(arr[x]+" ");
            }
            System.out.println();
        }
    }
}

输出为:

排序前的数组:
91 46 65 41 58 80 29 19 62 97 
第1步排序后结果:19 46 65 41 58 80 29 91 62 97 
第2步排序后结果:19 29 65 41 58 80 46 91 62 97 
第3步排序后结果:19 29 41 65 58 80 46 91 62 97 
第4步排序后结果:19 29 41 46 58 80 65 91 62 97 
第5步排序后结果:19 29 41 46 58 80 65 91 62 97 
第6步排序后结果:19 29 41 46 58 62 65 91 80 97 
第7步排序后结果:19 29 41 46 58 62 65 91 80 97 
第8步排序后结果:19 29 41 46 58 62 65 80 91 97 
第9步排序后结果:19 29 41 46 58 62 65 80 91 97 
选择排序后的数组:
19 29 41 46 58 62 65 80 91 97 

从结果看出:
第一轮排序,首先找到最小的数据为arr[7]=19,将其与arr[0]=91交换,即:arr[7]=91,arr[0]=19,其他数据位置不变;
第二轮排序,首先在从除了arr[0]之外的数据中找到最小的数据为arr[6]=29,将其与arr[1]=46交换,即:arr[6]=46,arr[1]=29;
。。。
依次进行。

Codex智能体从零搭建:环境配置、代码管理与MCP扩展实战 AI智能体(Agent)作为连接大语言模型与实际应用的关键技术,通过感知、决策与执行框架,将AI能力融入具体工作流。其核心原理在于利用提示工程、上下文管理与工具调用,将自然语言指令转化为可执行操作。在软件开发领域,AI智能体能够显著提升代码生成、项目管理和自动化任务的效率。通过Model Context Protocol(MCP)等标准化协议,智能体可以安全、结构化地集成外部工具与服务,实现能力扩展。本文聚焦于Codex这一AI驱动的代码助手平台,详细解析其环境配置、代码索引、记忆系统等核心模块,并深入探讨 阅读详情

相关推荐

VSCode+PlatformIO新建工程卡成狗?3步提速大法实测有效(附镜像源配置)

针对VSCode+PlatformIO新建工程时因依赖下载缓慢导致的加载慢问题,本文提供了三步核心提速方案。通过配置Python环境变量、修改PlatformIO插件设置以使用国内镜像源,并优化pip配置文件,实测可大幅缩短工程创建时间,有效解决创建工程卡顿的痛点。

delta的博客 717

Java排序算法总结之(三)——选择排序(简单选择排序、堆排序)

排序方法可以分为两种:内部排序 和 外部排序 内部排序的方法很多,常用的大致可以分为: 插入排序(直接插入排序、折半插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(简单选择排序、堆排序)归并排序基数排序 选择排序 1.简单选择排序 基本思想:对数列的 n 个元素进行比较,选出最小(或者最大)的元素,与起始位置的值交换,再从余下的数据中找到最小(最大)值,放在已排序部分

Appletable的博客 1034

deepfake detection数据集

最全Deepfake数据集总结,包含各个数据集下载链接: https://github.com/deepfakeinthewild/deepfake_in_the_wild Dataset name Download Generate method Deepfake videos Actors Deepfake-TIMIT low download De...

where_is_horse的博客 1万+

Java常用排序算法冒泡排序与选择排序总结

概述排序算法有好多种,也在特殊的场景中,我们经常需要对我们的数据进行排序,这里对经典的排序做一个记录整理。一冒泡排序原理分析冒泡排序其实就是对一组数以类似冒泡对形式,进行从大到小或者从小到大的排序,那么什么是冒泡呢?其实也简单,比如有一组数字:3,9,6,2 以上图只比较了第一轮,会冒出一个较大大,依此类推进行比较。以此比较两个数字,将较较小的数字一个一个冒上来,将相反的较大的数字往下沉,然后内层

开飞机的舒克 1688

Pixel 4/4 XL 刷机小白必看:Magisk Root 全流程详解(附电信网络适配技巧)

本文为Pixel 4/4 XL用户提供了一份详尽的Magisk Root全流程指南。从解锁Bootloader、刷入Magisk,到解决电信网络VoLTE适配问题,再到隐藏Root以通过银行App检测,手把手教你安全获取系统最高权限并优化日常使用体验。

weixin_29310605的博客 268

java常用排序算法——选择排序

常用于取序列中最大最小的几个数时。 (如果每次比较都交换,那么就是交换排序;如果每次比较完一个循环再交换,就是简单选择排序。) (图有点错误,比如:第一次遍历得到结果后5排在第一位,12应该是在5原来所在的位置,看代码。。。) 思路 1.遍历整个序列,将最小的数放在最前面(选择:选择最小/大的放到最前面)。 2.遍历剩下的序列,将(选择)最小的数放在最前面。 3.重复第二步,直到只...

weixin_39315827的博客 178

WPS文档中心和文档中台 operate 未授权访问漏洞(CVE-2025-0717)

WPS文档中心和文档中台的/open/v6/api/etcd/operate?key=/config/storage&method=get接口存在未授权访问漏洞,攻击者可通过该漏洞获取AK/SK密钥等信息,这些密钥通常用于系统内部认证和权限控制,泄露后可能导致攻击者进一步修改K8s配置、部署恶意容器或执行远程命令,最终实现对系统的完全控制。

李同學AI安全 905

JAVA常用排序算法之简单选择排序

JAVA常用排序算法之简单选择排序。 常用于取序列最大与最小的几个数时,这是一种不稳定的排序算法。当i=1时,需要进行n-1次比较,当i=2时,需要进行n-2次比较,依次类推,共需要(n-1)+(n-2)+…+2+1=n(n-1)/2次比较,所以时间复杂度是O(N^2),进行移动操作的时间复杂度为O(N)。 算法的步骤是:首先将第一个和后面的所有的数进行比较,将最小的放在前面。然后从第二个开始重...

haha的博客 446

使用W5500与外网通信故障解决(MAC地址问题)

在蒲城项目的调试时,AMS500发现一个致命的问题,就是:在局域网跨网段通信时候和中心服务器不能通信,但是在一个HUB下是没有问题的,以前的串口服务器有过类似的问题出现,解决方法说是芯片的问题,结果也不了了之,换了芯片正常。 我们的网络通信芯片选择W5500,其中的MAC地址采用的是CPU的序列号作为Mac地址的问题就出在这,我们在使用的时候MAC地址的第一个必须是偶数,我们忽视了。 现象描...

zxm8513优快云博客 7756

PMO与供应链管理的整合:端到端项目交付的优化策略

在当今全球化和市场竞争日益激烈的环境中,组织面临着前所未有的项目复杂性和交付压力。传统上相互独立的项目管理办公室(PMO)与供应链管理(SCM)正逐渐意识到:只有通过无缝整合,才能实现真正高效的端到端项目交付。本文深入探讨了PMO与供应链管理整合的战略价值、核心框架和实施路径,通过生动的比喻、实际案例和实用工具,展示了如何打破部门壁垒,构建协同高效的项目生态系统。无论您是PMO负责人、供应链专业人士还是高级管理层,都将从本文获得重塑项目交付模式、优化资源利用、降低风险并提升组织竞争力的宝贵见解和行动指南。

项目管理的博客 948

黑马程序员----Java中几种常用排序算法(选择排序、冒泡排序、快速排序)

Java中几种常用排序算法: class ThreeSort { public static void main(String[] args)//主函数,用于测试代码 { int[] arr={2,8,9,4,3,1,6}; quickSort1(arr,0,arr.length-1); sop(arr); } public static void sop(int[] ar

shaguayidianhong的专栏 1040

PNP NPN线性接近开关接线嵌入式:详细指南与示例代码

在嵌入式系统中,PNP和NPN线性接近开关是常用的传感器类型,用于检测物体的接近或离开。在嵌入式系统中,PNP和NPN线制接近开关是常用的传感器类型,用于检测物体的接近或离开。本文提供了有关PNP和NPN线性接近开关接线的详细指南,并提供了一个简单的示例代码,以帮助您在嵌入式系统中正确使用这些传感器PNP NPN 线制接近开关接线 嵌入式:详细指南与示例代码。与PNP开关不同的是,NPN线性接近开关的正极连接至系统的正极电源。与PNP开关不同的是,NPN线制接近开关的正极连接至系统的正极电源。

CyberSphinx的博客 1272

Java中常用算法之选择排序算法

选择排序的时间复杂度为O(n²),因为在最坏情况下需要进行n²次比较。选择排序的优点是它的实现简单,并且在某些情况下(如内存写入次数较少时)可能比其他O(n²)排序算法更有效。然而,它的效率不如更复杂的排序算法(如快速排序、归并排序)高。选择排序适合用于小规模数据集或对稳定性要求不高的场合。

dm菜鸟编程的专栏 598

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

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

Java常用的经典排序算法(一)选择排序

选择排序(Select Sort)的基本思想为(假设由小到大排序):对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换;接着对不包...

weixin_41797098的博客 145

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java 常用排序算法实现--快速排序、插入排序、选择、冒泡

public class ArrayOperation { //二分查找算法 public static int branchSearch(int[] array, int searchNum) { if (array == null) throw new NullPointerException("Null Referrence");

北慕的博客 779

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java常用排序算法之冒泡排序、选择排序、插入排序

排序算法:冒泡排序、选择排序、插入排序、堆排序、归并排序、计数排序、基数排序、桶排序、快速排序 -冒泡排序 基本思想 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整, 让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 代码实现 /** * 冒泡排序 * 基本思想: ...

追梦的鱼儿 429

java常用排序算法——冒泡排序,选择排序概述

java常用排序算法——冒泡排序,选择排序概述

快乐学习,daydayup! 919

Java常用的经典排序算法(二)选择排序

选择排序(Select Sort)的基本思想为(假设由小到大排序):对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换;接着对不包...

weixin_41797098的博客 144

Java常用的经典排序算法:冒泡排序与选择排序

一、冒泡排序 冒泡排序(Bubble Sort)是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。   进一步理解为(假设由小到大排序):对于给定的n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和换位后,n个记录的最大记录将位于...

weixin_30500105的博客 86

常用排序算法简介与java实现(冒泡、插入、选择、希尔、归并、快排)

本文介绍六大常用算法的基本思路,以及相应的java函数实现。 本文的eclipse工程源代码可到以下链接下载: http://download.youkuaiyun.com/detail/nostandby/9639511下面将按照以下顺序进行介绍: 1、冒泡排序、冒泡排序的两种改进。 2、插入排序。 3、选择排序。 4、希尔排序。 5、归并排序。 6、快速排序。1、冒泡排序: 相邻两个元素进

peacewind 631

Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等

import java.util.Arrays; /* * 实现了八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 * 以及快速排序、归并排序、堆排序和LST基数排序 * @author gkh178 */ public class EightAlgorithms { //插入排序:时间复杂度o(n^2) public static void i

畅游JAVA 309

java常用排序算法:冒泡,选择,插入

1.冒泡法 重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。时间复杂度 O(n²),为稳定算法。 public static void bubbleSort(int []arr) { for(int i =0;i<arr.length-1;i++) { ...

5big的博客 213

【Java】八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序

这篇文章主要介绍了Java如何实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序,需要的朋友可以参考下 本文实现了八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序 首先是EightAlgorithms.java文件,代码如下: import java.util.Arr

小坚的技术博客 1150

插入排序,选择排序,冒泡排序等常用排序算法(java实现)

packageorg.webdriver.autotest.Study; importjava.util.*; publicclasssort_examp{ publicstaticvoidmain(String[]args) { Integer[]num={4...

chuoduilie4830的博客 167

常用排序算法之直接选择排序java版

直接选择排序 算法描述: 首先找出最大的元素,将其与 a[n- 1]位置交换; 然后在余下的 n- 1 个元素中寻找最大的元素,将其与 a[n- 2]位置交换, 如此进行下去直至 n 个元素排序完毕。 过程实例: 初始元序列: 8 3 2 5 9 3* 6 第一趟排序: 8 3 2 5 6 3* 【9 】 第二趟排序: 3* 3 2 5 6 【 8

牧修的专栏 473
上一篇: Java常用排序算法之冒泡排序
下一篇: Java常用排序算法之插入排序
詹詹自喜KING
博客等级 码龄11年 40粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值