当前位置: 首页 > news >正文

选择排序--自学笔记

选择排序

学习目标:

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)

http://www.rkmt.cn/news/116161.html

相关文章:

  • Open Library 终极指南:三步打造你的专属数字图书馆
  • 姿态搜索终极指南:5步构建智能人体动作分析系统
  • 异常传递失败?教你如何在Q#中精准捕获Python异常,90%的人都忽略了这一点
  • 【量子计算开发新纪元】:VSCode模拟器调试的7个关键优势
  • NSTool深度解析:Switch文件格式的终极处理指南
  • 高效OpenUSD场景导出:USDZ与glTF格式深度对比与转换指南
  • AGI的瓶颈不是模型规模,而是这个“协调层“!斯坦福新研究让大模型真正“开窍“
  • 为什么90%的多模态Agent项目在Docker依赖上踩坑?真相来了
  • 2025生活用品自动化生产线集成厂TOP5权威推荐:甄选优质 - myqiye
  • ESP32-S3多SPI设备完美共存:TFT屏幕与SD卡零冲突配置实战
  • 泛微.采知连知识管理平台深度应用DeepSeek,自动采集数据,让问答更安全·准确
  • LobeChat入门教程:打造你的私有AI聊天助手
  • ONNX模型下载终极指南:5种场景化解决方案让你告别龟速下载
  • Mermaid实战指南:10个场景教你用代码绘制专业图表
  • 别再问资质认证怎么查了!看这家公司如何用“大模型搜索”帮客户7天拿下高新认证
  • 3大核心技巧:YOLO11在Docker环境下的RTSP流延迟优化实战
  • 爱创猫靠谱吗?省钱实测报告:无套路功能真的香
  • vue基于Spring Boot框架的技术的课程试卷信息信息管理系统_h83gkh9v
  • 8、量子计算与技术发展:从理论根源到实际应用
  • Moonlight for Tizen:智能电视游戏串流终极指南
  • KuGouMusicApi:打造专业的酷狗音乐开发接口服务
  • 29、实现 SNMP MIB 及 RTA 参考指南
  • Jellyfin Bangumi插件3分钟配置攻略:告别混乱的动画收藏管理
  • 省钱不打折!爱创猫靠谱 AI 服务,功能全还便宜
  • 3步打造高颜值Obsidian:从新手到美化达人终极指南
  • DeeplxFile终极指南:免费文件翻译的完整解决方案
  • 【Electron教程】第1节 Electron 简介与环境搭建 - 教程
  • 2025年,国内外最火的10款降AI率工具亲测!(持续更新) - 晨晨_分享AI
  • 脆碎度仪哪家好,先看这份榜单!2025行业公认的十大知名品牌深度解析 - 品牌推荐大师1
  • 运城婚纱摄影权威评星榜:2025年12月口碑TOP5+专项优选全指南 - 提酒换清欢