尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

选择排序--自学笔记

选择排序--自学笔记
📅 发布时间:2026/6/19 12:12:03

选择排序

学习目标:

1.选择排序的基本思想

2.二元选择排序

3.冒泡排序和选择排序的异同

4.复杂度分析

1.选择排序的基本思想

1.1基本思想

双重循环遍历数组,每经过一轮比较,找到最小或最大元素的下标,将其换至首位!

经过六轮选择,完成排序

1.2代码实现

publicstaticvoidselectSort(int[]arr){intminIndex;intlen=arr.length;for(inti=0;i<len-1;i++){minIndex=i;for(intj=i+1;j<len;j++){if(arr[j]<arr[minIndex]){minIndex=j;}}swap(arr,i,minIndex);}}

2.二元选择排序

2.1 二元选择排序的思想

既然一次选择中要找出最小值,何不把最大值也找出来

2.2 代码实现

publicstaticvoidselectSort(int[]arr){intminIndex,maxIndex;intlen=arr.length;for(inti=0;i<len-1;i++){minIndex=i;maxIndex=i;//每轮最末尾 i 位 已有序for(intj=i+1;j<len-i;j++){if(arr[j]<arr[minIndex]){minIndex=j;}if(arr[j]>arr[maxIndex]){maxIndex=j;}}//min == max 说明所有元素相等 提前退出if(minIndex==maxIndex)break;swap(arr,i,minIndex);//当前数组的末尾下标 len - 1 - i//特殊情况:此时maxIndex == i//而 i 刚刚与 minIndex 互换//更新为 maxIndex = minIndexif(maxIndex==i)maxIndex=minIndex;swap(arr,len-1-i,maxIndex);}}

3.冒泡排序和选择排序的异同

3.1 相同点

1.都是两层循环,时间复杂度为O(n2)

2.都只使用有限个变量,空间复杂度为O(1)

3.2 不同点

1.冒泡排序在比较过程中不断交换

2.选择排序增加一个变量保存最小值/最大值的下标,遍历完成后才交换,

减少了交换的次数

*3.冒泡排序是稳定的,而选择排序是不稳定的

3.3 排序算法的稳定性

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,

若经过排序,这些记录的相对次序保持不变,即

在原序列中,r[i] = r[j] ,且r[i] 在 r[j] 之前,而在排序后的序列中,

r[i] 仍在 r[j] 之前,相对顺序依然不变,

则称这种排序算法是稳定的;

否则称为不稳定的

3.4 什么情况下要用的排序算法的稳定性?

将要排序的内容是一个对象的多个属性,

且其原本的顺序存在意义,

如果要在二次排序后保持原有排序的意义,

则需要用到稳定性

4.复杂度分析

1.时间复杂度:O(n2)

2.空间复杂度:O(1)

215. 数组中的第K个最大元素 - 力扣(LeetCode)

2.空间复杂度:O(1)

215. 数组中的第K个最大元素 - 力扣(LeetCode)

相关新闻

  • Open Library 终极指南:三步打造你的专属数字图书馆
  • 姿态搜索终极指南:5步构建智能人体动作分析系统
  • 异常传递失败?教你如何在Q#中精准捕获Python异常,90%的人都忽略了这一点

最新新闻

  • Go应用安全开发指南:从依赖扫描到运行时防护的完整实践
  • 2026年口碑好的河北工业研磨机/工业研磨机/河北数控双头前角研磨机/数控一体研磨机精选厂家推荐 - 行业平台推荐
  • 2026年正规的四川铣床机械加工/四川数控连床机械加工定制加工厂家推荐 - 品牌宣传支持者
  • 2026年知名的太仓视觉非标自动化设备/太仓单端热敏非标自动化设备/IGBT非标自动化设备厂家哪家好 - 行业平台推荐
  • 2026年可靠的郑州代账报税/郑州代账性价比高的公司 - 品牌宣传支持者
  • 2026荆州漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号