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

发布时间 - 2026-01-11 03:13:40    点击率:

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

举个小例子:

arr[] = {3,1,2,6,5,4}

第 1 趟排序: index = 0, min = 1,   交换后 -->  1,3,2,6,5,4

第 2 趟排序: index = 1, min = 2,   交换后 -->  1,2,3,6,5,4

第 3 趟排序: index = 2, min = 2,   交换后 -->  1,2,3,6,5,4

第 4 趟排序: index = 3, min = 5,   交换后 -->  1,2,3,4,5,6

第 5 趟排序: index = 4, min = 4,   交换后 -->  1,2,3,4,5,6

核心代码如下:

/**
   * 选择排序,从小到大排序
   */
  public static void selectsort(int[] arr) {
    int min = 0;  //记录最小值的索引
    //遍历 n-1 轮,最后一个数不用遍历比较
    for(int i = 0; i < arr.length - 1; i++) {
      min = i;    //初始最小值为每轮循环的第一个数
      //遍历初始最小值后的所有数
      for(int j = i + 1; j < arr.length; j++) {
        if(arr[min] > arr[j]) {    //判断是否存在比最小值小的数
          min = j;        //记录下标  
        }
      }
      if(min != i) {      //判断最小值的索引是否等于初始最小值的索引
        int temp = arr[min];    //不是则进行最小值交换
        arr[min] = arr[i];
        arr[i] = temp;
      }
    }
  }

选择排序算法是一种不稳定的算法,它的时间复杂度为 O(n2),空间复杂度为 O(1).

以上这篇java排序算法之_选择排序(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# java选择排序算法  # java 排序算法之选择排序  # JAVA十大排序算法之选择排序详解  # java排序算法之选择排序详解  # Java排序算法之选择排序  # java数据结构排序算法之树形选择排序详解  # Java实现的各种排序算法(插入排序、选择排序算法、冒泡排序算法)  # Java实现选择排序算法的实例教程  # Java 十大排序算法之选择排序刨析  # 遍历  # 最小值  # 是一种  # 给大家  # 希望能  # 便可  # 只需要  # 这篇  # 不稳定  # 小编  # 值为  # 从小到大  # 大家多多  # 就可以  # 举个  # 组中  # 判断是否  # color  # index  # arr 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Session怎么存储_Laravel Session驱动配置详解  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  如何在阿里云完成域名注册与建站?  如何正确下载安装西数主机建站助手?  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  浅述节点的创建及常见功能的实现  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何快速生成ASP一键建站模板并优化安全性?  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  javascript中对象的定义、使用以及对象和原型链操作小结  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  如何基于云服务器快速搭建个人网站?  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  iOS验证手机号的正则表达式  如何用搬瓦工VPS快速搭建个人网站?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  详解Android图表 MPAndroidChart折线图  Laravel如何实现文件上传和存储?(本地与S3配置)  JS弹性运动实现方法分析  如何打造高效商业网站?建站目的决定转化率  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何快速生成橙子建站落地页链接?  Laravel中的withCount方法怎么高效统计关联模型数量  如何快速生成凡客建站的专业级图册?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  香港服务器租用费用高吗?如何避免常见误区?  Laravel如何实现数据库事务?(DB Facade示例)  如何为不同团队 ID 动态生成多个独立按钮  如何在阿里云域名上完成建站全流程?  大连网站制作公司哪家好一点,大连买房网站哪个好?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  如何在景安服务器上快速搭建个人网站?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  Laravel如何发送系统通知?(Notification渠道示例)  网站制作企业,网站的banner和导航栏是指什么?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何注册花生壳免费域名并搭建个人网站?