详解JAVA选择排序

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

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。选择排序时间复杂度为O(n²),具体关于时间复杂度的推理大家可以去看百度百科!!!

package com.algorithm;

import java.util.Arrays;

/**
 * 面试锦集:选择排序
 *
 * @author 小辉GE/小辉哥
 * <p>
 * 2019年8月16日 下午10:50:00
 */
public class SelectionSort {

    public static void main(String[] args) {
        // 定义数组
        int[] arry = new int[]{3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};
        System.out.println("arry数组排序前为:" + Arrays.toString(arry));

        // 外层循环控制
        for (int i = 0; i < arry.length - 1; i++) {
            // 定义当前循环中最小值的下标
            int minIndex = i;
            // 内层循环控制
            for (int j = i + 1; j < arry.length; j++) {
                if (arry[minIndex] > arry[j]) {
                    minIndex = j;
                }
            }
            // 将找到的最小值minIndex和i位置所在的值进行交换
            if (minIndex != i) {
                int tmp = arry[minIndex];
                arry[minIndex] = arry[i];
                arry[i] = tmp;
            }
        }
        System.out.println("arry数组排序后为:" + Arrays.toString(arry));

    }


}

具体选择排序步骤详解,大家可以参考下图动态展示效果:

测试输出结果如下:

以上代码仅供参考,如有不当之处,欢迎指出!!!

更多干货,欢迎大家关注和联系我。期待和大家一起更好的交流、探讨技术!!!

 

深入Java冒泡排序与选择排序的区别详解 本篇文章是对Java冒泡排序与选择排序的区别进行了详细的分析介绍,需要的朋友参考下 立即下载

相关推荐

什么事LLVM和Clang?Clang与GCC有什么区别?Clang如何使用?

这个问题主要讲Xcode编译器的认知,在学习iOS之前有必要学习一下Objective-C的编译环境。 在了解LLVM和Clang之前,先得了解一下什么是编译器。 编译器是一种计算机程序,它将某种编程语言(高级编程语言)写成的源代码转换成另一种编程语言(低级编程语言)。一个现代编译器的主要工作流程为:源代码->预处理器->编译器->目标代码->链接器->可执行程序...

Welcome~ 9723

Java【选择排序】算法, 大白话式图文解析(附代码)

学数据结构与算法怎么少得了排序? 七大排序算法之[选择排序]详细图解, 结尾附[总体对比分析]

yzhcjl_的博客 2412

airodump-ng、aircrack-ng使用教程

wifi破解、airodump-ng、aircrack-ng脚本

ssmbyss的博客 2231

java选择排序解释_选择排序

号内回复数据结构,获取整套算法视频本文作者:skywang12345欢迎点击下方阅读原文选择排序介绍选择排序(Selection sort)是一种简单直观的排序算法。它的基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序图文说明选择排序...

weixin_29791447的博客 357

MATLAB 2022b 用户专属:保姆级IPOPT求解器安装配置全流程(含OPTI工具箱)

本文为MATLAB 2022b用户提供IPOPT求解器的详细安装与配置指南,涵盖OPTI工具箱的适配安装、环境变量设置及常见问题解决方案。通过实战案例演示非线性优化问题的求解过程,帮助用户高效部署这一强大的优化工具,提升工程计算效率。

weixin_29092031的博客 405

【5G全网建设】Option3X和Option2模式建安市、兴城市和四水市核心网、承载网网络设计与部署

拓扑规划: Option 3X网络拓扑图规划 Option 2网络拓扑图规划 设备部署: 建安市核心网 建安市承载中心机房 建安市骨干汇聚机房 建安市3区汇聚机房 建安市C站点无线机房 兴城市核心网 兴城市承载中心机房 兴城市骨干汇聚机房 兴城市2区汇聚机房 兴城市B站点无线机房 数据配置: 建安市核心网 建安市承载中心机房 建安市骨干汇聚机房 建安市3区汇聚机房 建安市C站点无线机房 兴城市核心网 兴城市承载中心机房 兴城市骨干汇聚机房 兴城市2区汇聚机房 兴城市B站点无线机房 业务调试

weixin_67183034的博客 8851

java选择排序详解_java排序算法之_选择排序(实例讲解)

选择排序是一种非常简单的排序算法,从字面意思我们就可以知道,选择就是从未排序好的序列中选择出最小(最大)的元素,然后与第 i 趟排序的第 i-1(数组中下标从 0 开始) 个位置的元素进行交换,第 i 个元素之前的序列就是已经排序好的序列。整个排序过程只需要遍历 n-1 趟便可排好,最后一个元素自动为最大(最小)值。举个小例子:arr[] = {3,1,2,6,5,4}第 1 趟排序: index...

weixin_33305287的博客 480

Unity获取透明物体深度数据

Unity获取透明物体深度数据前言透明&景深需求模型透明度部分带透明通道图片/视频部分半透明模型获取深度的具体实现方法带透明度图片/视频获取深度的具体实现方法结束语 前言 最近在做的项目有很多奇怪的需求,甚至之前在unity里用插件写了一个类似于蓝图的行为树插件,之后有时间给大家讲一讲相关的实现方法,今天刚解决了unity里透明物体无法获得深度数据的问题。所以分享给大家。 透明&景...

可以吃的妙脆角的博客 2630

java选择排序解释_Java实现选择排序

选择排序是常用内部排序的一种,常见的实现算法有直接选择排序算法和堆排序算法,选择排序的基本思想是每次从待排数据中选择第n小的数据放到排序列表的第n个位置,假如共有N个数据待排,那么经过N-1次排序后,待排数据就已经按照从小到大的顺序排列了。直接选择排序算法的思想比较简单:(假设数据放在一个数组a中,且数组的长度是N)1:从a[0]-a[N-1]中选出最小的数据,然后与a[0]交换位置2:从a[1]...

weixin_28785757的博客 205

Vue3 - 手机移动端H5网页强力解决弹起软键盘后页面被挤压变形或页面整体上移问题,点击input输入框键盘弹出底部被上推往上顶遮挡及各种问题(兼容安卓苹果ios手机,微信公众号网页微信内置浏览器)

vue3,h5网页,input输入框组件,vue3 h5软键盘弹出,vue3输入框,键盘弹起时页面整体上移问题,uni,H5页面,解决软键盘弹起页面被挤压、被往顶的问题,解决vue3输入框,键盘弹起时页面整体上移问题,vue3调用手机系统软键盘,页面窗口被顶起,布局定位失效,解决VUE3软键盘弹起导致页面fixed定位元素被顶上去,输入法软键盘弹起,窗口顶起,变形解决办法,Vue中input组件在IOS设备上弹出软键盘时页面整体上移问题的解决方案,以及input组件聚焦后弹出软键盘固定在,Vue3软键盘把界

🏆 前端领域优质创作者 1万+

在 SAP 中修改 Profile 文件中的主机名需要谨慎操作,需需确保所有相关配置保持一致

在SAP系统中修改Profile文件主机名需谨慎操作,主要步骤包括:1)停止相关SAP服务;2)重命名并编辑实例级Profile文件(如ER1_D00_OLDHOST改为ER1_D00_LRPSAP),修改所有含旧主机名的参数;3)可选更新默认Profile文件;4)在Windows系统中调整注册表配置;5)验证一致性后重启服务。关键注意:保持大小写统一、修改前备份文件、集群环境需同步所有节点。通过系统日志确认新主机名生效且无报错。

金牌架构师 1049

java选择排序解释_3分钟理解选择排序java版

概念选择排序(selectsorting)也是一种简单的排序方法。它的基本思想是:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。细节:本例中是找到最小值放到起始位置。图解给的原始数组是一个无序数组,我们将其分为两段,第一段是个只有第一个元素101的用有序空间,第二段是剩下...

weixin_33700809的博客 219

PCL RANSAC拟合分割圆柱体模型【2026最新版】

使用RANSAC拟合分割圆柱的原理介绍、官网示例代码实现以及一个可视化拟合出来的圆柱的具体应用案例。博客长期更新,最近一次更新时间为:2026年1月28日。

点云侠的博客 40万+

java选择排序详解_Java选择排序法详解

下面要给大家讲到的就是java选择排序法的内容,下面就一起通过文章来进行一下了解吧,有详细的讲解哦。假设,存在一个int类型的数组number,这个数组当中,元素依次是13、15、24、99、4和1,假如,使用冒泡排序进行两两相邻比较,第一趟排序后的结果:13、15、24、4、1、99第二趟排序后的结果:13、15、4、1、24、99第三趟排序后的结果:13、4、1、15、24、99第四趟排序后的...

weixin_35698091的博客 693

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java选择排序详解_Java选择排序入门详解

前面我们已经介绍了冒泡排序,接着我们来看看选择排序法。同样的,我们还是以冒泡排序中五名运动员的身高A(181)、B(169)、C(187)、D(172)、E(163)为例,然后使用选择排序法,对其实现从左到右、从低到高的排序。与冒泡排序不同的是,选择排序法并不是让相邻的两名运动员按照顺序依次比较身高来得出排序结果。下面,我们来详细了解一下选择排序法的排序过程。由于5名运动员需要按照从左到右、从低到...

weixin_42499530的博客 296

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

选择排序详解java实现

最佳情况: T(n) = O(n) 最差情况:T(n) = O(n2) 平均情况:T(n) = O(n2) 选择排序(Selection-sort)是一种简单直观的排序算法。 它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的后面。以此类推,直到所有元素均排序完毕。 动图模拟: 代码: import java.lang.reflect.Array; import java.util.Arrays;

weixin_45831807的博客 440

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

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

java中排序详解_Java常见排序算法详解——选择排序

转载请注明出处选择排序Simple Selection Sort概念:是一种简单直观的排序算法。每一次遍历时选取关键字最小(或最大)的记录作为有序序列的第i个记录。原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。例如我们有一个数组,我们如果需要把较小的元素排在前面,把...

weixin_42467960的博客 149

java选择排序详解_JAVA实现选择排序

前言:选择排序,顾名思义,就是选择一个位置进行比较排序。区别于冒泡排序,选择排序是选择一个索引位,与其他索引位进行比较交换,而冒泡排序则是相邻两个索引位进行比较交换核心思想选择第 0索引位,与其他索引位相比较,第一次比较,得出小的数始终确保位于0索引位,该趟结束后,得出最小数。之后选择第1索引重复比较设计思路外层控制循环整个数组循环次数,同时赋予内层索引初始值,内层控制该次循环下,索引位比较次数代...

weixin_39625975的博客 200

Java选择排序详解

选择排序(SelectionSort) 转自:神话丿小王子:Java中的经典算法之选择排序(SelectionSort) 简单选择排序的基本思想: 给定数组:int[] arr={里面n个数据}; 第1趟排序,在待排序数据arr[1]-arr[n]中选出最小的数据,将它与arrr[1]交换;第2趟,在待排序数据arr[2]-arr[n]中选出最小的数据,将它与r[2]交换; 以此类推,第i趟在待排...

qq_40774600的博客 174

选择排序详解——java实现

1.概念 选择排序是一种很容易理解和实现的简单排序算法。它的原理是:找到数组中最大(或最小)的元素,同该数组第一个(或最后一个)元素进行对换;之后在未完成排序的元素中(从第二个开始以后或者从倒数第二个以前)找到最小的元素,同第二个(或倒数第二个)元素进行对换;之后如上步骤继续,直至数组长度减一次为止,完成排序。即每次总是在选择最小的或最大的元素(取决于你心情,爱咋排咋排),所以叫做选择排序。 2....

weixin_41304904的博客 171

java选择排序详解

java选择排序详解

爱学习的小蜗牛的博客 626

java选择排序详解_选择排序法-java详解案例

/** * 功能:选择排序法* 思想:第一次从R[0]-R[N-1]中选取最小值,与R[0]交换,第二次从R[1]-R[N-1]中选取最小值,与R[1]交换,* 第三次从R[2]-R[N-1]中选取最小值,与R[2]交换...第i次从R[i]-R[N-1]中选取最小值,与R[i-1]交换,* 第n-1次从R[n-2]-R[N-1]中选取最小值,与R[n-2]交换,总共通过n-1次,得到一个按排序...

weixin_42499681的博客 178

java选择排序算法_java选择排序算法详解

/*** 选择排序:执行完一次内for循环后最小的一个数放在了数组的最前面。** 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。**/public class SelectSort {/*** 排序算法的实现,对数组中指定的元素进行排序** @param array* 待排序的数组* @param from...

weixin_32458131的博客 279

java 之选择排序与冒号排序的详解

选择排序:核心思想:直接从待排数据中"选出"最小,或最大的数据,直接放在序列的前列位置,直到所有待排元素全部排列完毕java代码的实现:public static void selectSort(int[] a){    int minIndex = 0;    int temp = 0;    if((a == null)) ||(a.length-1;i++){        return; ...

小肥猫吃鱼的博客 888

七大排序之选择排序和双向选择排序 超详解java版

七大排序之选择排序和双向选择排序白话详解 看完秒懂! 选择排序是一个不稳定的排序算法(关于排序算法的稳定性和不稳定性详见主页文章) 基础的选择排序 是将数组从头到尾遍历一遍,定义引用 i 在数组的第一个元素,定义一个临时变量 min 记录下遍历数组的最小值,和 i 引用的元素值交换,i 向后走,for循环遍历 i 后面的数组元素 继续记录数组最小值min ,与 i 交换,直到 i 走到数组的末尾元素,就得到一个升序的数组。 java代码实现如下: /** * 选择排序 不稳定 时间复杂度:

qq_51263139的博客 1233

java数组的选择排序_Java对数组实现选择排序算法的实例详解

一. 算法描述 选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。以下面5个无序的数据为例:56 12 80 91 20(文中仅细化了第一趟的选择过程)第1趟:12 56 80 9...

weixin_30070647的博客 414
上一篇: 面试锦集:手写一个同步类容器之BlockingQueue实现
下一篇: 详解JAVA插入排序
饶艳辉
博客等级 码龄15年 20粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值