news 2026/6/10 17:53:55

选择排序--自学笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
选择排序--自学笔记

选择排序

学习目标:

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)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:11:44

构建时间从30分钟到3分钟:AI模型Docker缓存调优真实案例

第一章&#xff1a;构建时间从30分钟到3分钟&#xff1a;AI模型Docker缓存调优真实案例在持续集成环境中&#xff0c;一个基于PyTorch的AI模型服务镜像构建时间曾高达30分钟&#xff0c;严重拖慢了开发迭代效率。通过深入分析Docker构建层机制&#xff0c;结合依赖缓存策略优化…

作者头像 李华
网站建设 2026/6/9 20:48:20

别再裸奔了!智能 Agent 的 Docker 安全配置必须包含这 8 个核心项

第一章&#xff1a;智能 Agent 的 Docker 安全配置概述在部署智能 Agent 的容器化环境时&#xff0c;Docker 的安全配置是保障系统稳定与数据隔离的核心环节。不当的配置可能导致权限提升、网络暴露或镜像污染等安全风险。因此&#xff0c;从镜像构建到运行时策略&#xff0c;每…

作者头像 李华
网站建设 2026/6/10 10:51:59

网络开始替你做决定,这事真的有点不对劲

一开始&#xff0c;我也觉得这事挺离谱的。 网络嘛&#xff0c;不就是发请求、收响应&#xff1f; 最多加个代理、配个 timeout。 但后来你会发现一件很微妙的事&#xff1a;你越来越多的代码&#xff0c;根本不是在“写业务”&#xff0c; 而是在安抚网络的情绪。这时候你心里…

作者头像 李华
网站建设 2026/6/10 5:00:49

为什么你的VSCode无法访问量子硬件?深度剖析权限模型与修复方案

第一章&#xff1a;VSCode 量子硬件的权限配置在开发与量子计算硬件交互的应用程序时&#xff0c;本地开发环境的安全性与访问控制至关重要。VSCode 作为主流的集成开发环境&#xff0c;需通过精确的权限配置确保对量子设备 API 的安全调用。合理的权限设置不仅能防止未授权访问…

作者头像 李华
网站建设 2026/6/10 10:50:23

网安人才缺口480万!3个相关专业特点大不同,一文分清

网安人才缺口 480 万&#xff01;3 个相关专业特点大不同&#xff0c;一文分清 9月16日&#xff0c;工业和信息化部教育与考试中心等部门联合发布《AI 时代网络安全产业人才发展报告&#xff08;2025&#xff09;》。报告指出&#xff0c;2025年全球网络安全人才缺口已升至480…

作者头像 李华
网站建设 2026/6/10 2:49:09

Grafana中文版终极指南:5分钟快速搭建监控仪表盘

Grafana中文版终极指南&#xff1a;5分钟快速搭建监控仪表盘 【免费下载链接】grafana-chinese grafana中文版本 项目地址: https://gitcode.com/gh_mirrors/gr/grafana-chinese Grafana中文版是一款专为中国用户量身定制的监控仪表盘汉化项目&#xff0c;基于官方Grafa…

作者头像 李华