news 2026/4/15 12:35:59

选择排序详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
选择排序详解

选择排序详解

1.核心思想

将序列分为已排序的和未排序的区间,每一轮从未排序的区间中找到最小值并与未排序区间的第一个元素交换,逐步扩大已排序的区间

步骤

  • 每一轮便利未排序的部分,找到最小值所对应的下标并作标记
  • 交换最小值和未排序部分的第一个元素
  • 重复上述步骤

2.代码实现

voidchoice(int*arr,intsz){intindex,temp;for(intk=0;k<sz-1;k++){index=k;for(inti=k+1;i<sz;i++){if(arr[i]<arr[index]){index=i;}}temp=arr[index];arr[index]=arr[k];arr[k]=temp;}}intmain(){intarr[]={2,3,4,5,6,1};intsz=sizeof(arr)/sizeof(arr[0]);choice(arr,sz);for(inti=0;i<sz;i++){printf("%-2d",arr[i]);}return0;}

3. 步骤拆解

  • 要排序的数组是{ 2,3,4,5,6,1 }
  • 通过sz = sizeof(arr) / sizeof(arr[0]);计算出要排序的元素个数,那么一共排序sz-1次即可
  • 默认未排序部分的最小值为未排序部分的首元素index = k,通过循环对比找到真正的最小值,出内层循环的时候index即为未排序部分最小值所对应的下标
  • 将未排序部分的最小值和第一个元素交换,第一轮是将1和2进行交换
  • 交换完成后k+1,重复上述步骤

特性分析

  1. 时间复杂度:最好、最坏、平均时间复杂度均为O(n^2),因为无论数组是否已有序,都需要完成n-1轮的比较。

  2. 空间复杂度:O(1),仅使用了临时变量temp等,属于原地排序。

  3. 稳定性:不稳定排序。例如数组[2, 1, 2],第一轮会将第一个2和1交换,导致两个2的相对位置改变。

  4. 适用场景:数据量较小的场景,因为交换次数少(每轮最多1次交换),比冒泡排序更高效。

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

Windows平台PDF处理神器:Poppler工具库终极使用指南

Windows平台PDF处理神器&#xff1a;Poppler工具库终极使用指南 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 在当今数字化办公环境中&#xff0…

作者头像 李华
网站建设 2026/4/15 12:32:10

ESP32在Arduino IDE中的WiFi连接实战案例

手把手教你用ESP32在Arduino中稳定连上WiFi&#xff1a;从入门到实战避坑 你有没有过这样的经历&#xff1f; 手里的ESP32板子插上电脑&#xff0c;烧录完代码&#xff0c;串口监视器却一直打印“Connecting…”、“.”、“.”、“.”&#xff0c;最后只换来一句冰冷的“Conn…

作者头像 李华
网站建设 2026/4/11 3:42:26

碧蓝航线自动化革命:Alas智能助手完整使用指南

还在为碧蓝航线的重复操作而烦恼吗&#xff1f;每天打开游戏就是无尽的收菜、派遣、刷图&#xff0c;感觉自己像个游戏打工仔&#xff1f;Alas自动化脚本正是为你量身定制的终极解决方案&#xff0c;让你重新找回游戏的乐趣&#xff01; 【免费下载链接】AzurLaneAutoScript Az…

作者头像 李华
网站建设 2026/4/2 21:07:44

PaddlePaddle镜像如何实现模型并行(Model Parallelism)?

PaddlePaddle镜像如何实现模型并行&#xff08;Model Parallelism&#xff09;&#xff1f;在当今大模型时代&#xff0c;一个1750亿参数的语言模型已经不再是实验室里的“黑科技”&#xff0c;而是真实推动智能客服、文档理解与内容生成落地的基础设施。然而&#xff0c;现实却…

作者头像 李华
网站建设 2026/4/1 11:54:32

【金猿案例展】中信百信银行——Data Agent智能指标项目

数势科技案例该Agent案例由数势科技投递并参与金猿组委会数据猿上海大数据联盟共同推出的《2025中国大数据产业年度Data Agent创新应用》榜单/奖项评选。大数据产业创新服务媒体——聚焦数据 改变商业中信百信银行作为国有控股的数字普惠银行&#xff0c;自成立以来持续深耕数…

作者头像 李华
网站建设 2026/4/8 0:50:24

【金猿案例展】德国知名车企-“采购助手Chatbot”数据智能体创新项目

逸迅科技案例该Agent案例由逸迅科技投递并参与金猿组委会数据猿上海大数据联盟共同推出的《2025中国大数据产业年度Data Agent创新应用》榜单/奖项评选。大数据产业创新服务媒体——聚焦数据 改变商业在全球豪华汽车制造业中&#xff0c;某车企作为领军者&#xff0c;其产品线…

作者头像 李华