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

直接选择排序

直接选择排序(Selection Sort)特性总结

  1. 理解难度:算法思想非常直观、易于理解。

    • 每一轮从未排序部分中选出最小(或最大)元素,放到已排序部分的末尾。
    • 但由于效率较低,在实际工程中很少使用
  2. 时间复杂度

    • **最好 / 平均 / 最坏情况均为 $ O(n^2) $ **
    • 原因:无论输入数据如何,都需要进行约 $ \frac{n(n-1)}{2} $ 次比较。
  3. 空间复杂度

    • ** O(1) **(原地排序)
    • 仅使用常数个额外变量,无需额外存储空间。
voidSelectSort(int*arr,intn){intbegin=0;intend=n-1;while(begin<end){intmax=end,min=begin;//让max和min跟随begin和end更新,避免因为没有发生交换等情况最后导致错误交换值。for(inti=begin;i<=end;i++){if(arr[i]>arr[max]){max=i;//选择排序只交换当前值与最值,如果此处直接交换,会造成多次交换,破坏原有的序列。}if(arr[i]<arr[min]){min=i;}}Swap(&arr[max],&arr[end]);if(min==end)//先选择最大值时如果最小值在序列尾,会造成交换最小值前,最小值的下标发生变化,此时需要变更下标,若选择先排最小值,同理要防止最大值出现在begin位置时造成的下标偏移{min=max;}Swap(&arr[min],&arr[begin]);begin++;end--;}}

该代码中为直接选择排序的优化方法——双向选择排序,同时对首端和尾端选择,可以提升选择排序效率

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

相关文章:

  • 想远程调用?Hunyuan-MT-7B-WEBUI开放端口方法来了
  • 手把手教你用CCMusic搭建个人音乐分析平台
  • 数字系统设计入门:全加器到数码管的完整示例
  • 图文并茂:Live Avatar安装与运行全过程记录
  • LoRA微调开启了吗?Live Avatar模型加载细节揭秘
  • 视频本地缓存技术全解析:从原理到跨场景应用方案
  • JUCE框架:跨平台音频开发的一站式解决方案
  • 新手常问:HeyGem需要GPU吗?处理速度怎么样?
  • 5分钟零基础上手openpi:告别机械臂AI控制部署烦恼
  • Coze-Loop对比测试:AI优化前后的代码差异
  • virtualenv隔离环境,HeyGem依赖管理更规范
  • Qwen2.5推理成本核算:每千token消耗资源详解
  • 亲测阿里通义Z-Image-Turbo,生成图片效果惊艳到不敢相信
  • 小白也能懂:Face Analysis WebUI人脸检测系统入门教程
  • 语音合成太慢怎么办?GLM-TTS提速技巧汇总
  • 本地部署AI绘画,Z-Image-Turbo到底香不香?
  • Qwen-Image-2512踩坑记录:这些错误千万别再犯
  • 实测微软VibeVoice:4人对话AI配音效果惊艳,操作超简单
  • IDEA启动SpringBoot项目之后显示端口被占用如何Kill掉?
  • 从Excel到AI,数据看板工具选型思路梳理
  • Hunyuan-MT-7B-WEBUI支持哪些语言?实测38种互译能力
  • Local AI MusicGen 保姆级教程:从安装到生成你的第一首AI音乐
  • GTE+SeqGPT镜像GPU算力适配:A10/A100/T4显存占用与batch size推荐
  • VibeThinker-1.5B在算法竞赛中的实际应用分享
  • Qwen-Image-Lightning对比测试:4步生成效果有多强?
  • GPEN镜像使用避坑指南,新人少走弯路
  • Prompt工程实战:提升Local AI MusicGen生成质量技巧
  • YOLOv13超图计算初探:官方镜像助力理解核心技术
  • 本地部署更安全:Live Avatar私有化数字人系统搭建指南
  • 工业质检实战:YOLOv9镜像快速搭建缺陷识别系统