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

简单选择排序的核心逻辑是:在每趟排序中从未排序的部分选出最小(或最大)元素,将其与该部分的第一个元素交换位置

简单选择排序的核心逻辑是:在每趟排序中从未排序的部分选出最小(或最大)元素,将其与该部分的第一个元素交换位置,从而逐步构建有序序列。通过 n-1 趟选择,完成整个数组的排序。

voidSelectSort(intdata[],intn){inti,j,k,tmp;for(i=0;i<n-1;i++){k=i;// 假设第i个位置就是最小值的位置for(j=i+1;j<n;j++)/* 找出最小关键字的下标 */if(data[j]<data[k])k=j;if(k!=i){// 若最小值不在第i位,则交换tmp=data[i];data[i]=data[k];data[k]=tmp;}}}

性能分析如下:

  • 比较次数:固定为n(n−1)2\frac{n(n-1)}{2}2n(n1),时间复杂度为O(n2)O(n^2)O(n2),不随输入数据分布变化。
  • 移动次数
    • 最好情况(已有序):0 次;
    • 最坏情况(逆序):每趟都发生交换,共3(n−1)3(n-1)3(n1)次移动(每次交换3次赋值)。
  • 稳定性:不稳定。例如,当有相同关键字的元素时,交换可能导致它们相对顺序改变。
  • 空间复杂度O(1)O(1)O(1),仅使用常量额外空间。
  • 简单选择排序是不稳定的,原因在于它在每趟选择中将最小元素与未排序部分的首元素进行直接交换,而不管这两个元素是否具有相同的值。这种交换可能改变相同关键字元素之间的相对顺序,从而破坏稳定性。

🔍 举例说明:

假设有一个待排序的数组,其中包含两个相同的元素5a5b(下标 a、b 用于区分先后顺序):

原始序列:[5a, 2, 5b, 1]

我们希望排序后相同元素5a5b的相对位置保持不变(即5a仍在5b前面),才能称为稳定排序。

执行选择排序过程:
  • 第1趟:从[5a, 2, 5b, 1]中找最小值 →1(下标3)

  • 1与第一个元素5a交换:

    结果:[1, 2, 5b, 5a]

此时,原本在后面的5a被换到了最后,而5b却排在了前面。

  • 最终结果中:5b出现在5a前面,改变了相同关键字元素的相对顺序

👉 因此,该算法是不稳定的


✅ 总结

尽管选择排序逻辑清晰、空间效率高,但由于其通过“交换”而非“插入”来调整位置,容易打乱相等元素的原始次序,所以不具备稳定性

http://www.jsqmd.com/news/187838/

相关文章:

  • 400 Bad Request因URL编码问题?HunyuanOCR路径参数处理规范
  • C# 12拦截器实战指南(方法调用增强技术大揭秘)
  • 为什么90%的C++工程师都搞不定AIGC模型加载?真相令人震惊
  • MyBatisPlus乐观锁机制保障HunyuanOCR并发任务一致性
  • 清华镜像站使用教程:一键拉取HunyuanOCR Docker镜像
  • C++程序员必须掌握的Rust内存模型:5个关键概念让你少走10年弯路
  • 【C#内联数组性能优化终极指南】:揭秘高性能编程的5大核心技巧
  • 谷歌镜像IP地址更换频繁?建议收藏HunyuanOCR官方镜像站
  • JavaSE——窗体结构介绍
  • 【专家警告】:忽视这5个扩展性陷阱,你的C++游戏引擎注定失败
  • CSDN官网技术文章排行:HunyuanOCR相关阅读量飙升
  • C++分布式系统中的智能负载均衡(基于实时权重调度的实践方案)
  • HuggingFace镜像网站上是否有腾讯混元OCR的替代资源?
  • CSDN官网问答区热门:HunyuanOCR怎么读取旋转文本?
  • 在国产化环境中部署腾讯混元OCR的技术挑战与解决办法
  • 【C++架构师必修课】:分布式环境下负载均衡的10个关键决策点
  • 172_尚硅谷_数组和查找的作业布置
  • LaTeX编辑器插件设想:实时调用HunyuanOCR辅助输入
  • Dify可视化编排调用HunyuanOCR API实现合同识别机器人
  • 怎么借助AI写论文初稿?实测11款AI论文工具,为你的毕业论文保驾护航! - 掌桥科研-AI论文写作
  • C++ AIGC模型加载技术内幕(仅限内部交流的架构设计曝光)
  • 2025真空搅拌机哪家强?好评如潮的厂家排行来啦,国内搅拌机品牌技术领航,品质之选 - 品牌推荐师
  • 关键词布局策略:围绕‘github镜像网站’推广HunyuanOCR资源
  • JavaSE——API
  • Faststone Capture替代方案:基于HunyuanOCR的截图识别工具开发
  • 2025年本地热销阁楼货架口碑排行,仓储货架库房货架出租/仓储架子价格/货架仓储架批发/二手轻型仓储货架阁楼货架公司怎么选择 - 品牌推荐师
  • PyCharm代码提示设置优化HunyuanOCR开发体验
  • ComfyUI云平台
  • 2025年大理石翻新养护公司口碑排行榜,大理石翻新养护选哪家优质品牌榜单更新 - 品牌推荐师
  • Java中采用埃拉托斯特尼筛法计算质数