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

速成蓝桥杯之排序(一)

一、冒泡排序(Bubble Sort)

核心思想:重复遍历待排序序列,依次比较相邻元素,若顺序错误则交换,使较大元素逐步 "冒泡" 至末尾。

  • 时间复杂度:平均 / 最坏 O(n2),最好 O(n)(优化后)
  • 空间复杂度:O(1)
  • 稳定性:稳定

解题步骤

  1. 从数组首元素开始,比较相邻两元素,前 > 后则交换。
  2. 每轮遍历确定当前最大元素位置,下一轮减少一次比较。
  3. 若某轮无交换,说明已有序,可提前结束。

蓝桥常考:基础排序实现、时间复杂度分析、稳定性判断。

二、选择排序(Selection Sort)

核心思想:每轮选未排序区最小(大)元素,放至已排序区末尾。

  • 时间复杂度:平均 / 最坏 / 最好 O(n2)
  • 空间复杂度:O(1)
  • 稳定性:不稳定

解题步骤

  1. 设首元素为最小值,遍历后续找更小值并记录下标。
  2. 遍历结束,将最小值与未排序区首元素交换。
  3. 缩小未排序区间,重复至全部有序。

蓝桥常考:与冒泡 / 插入对比、交换次数、稳定性辨析。

三、插入排序(Insertion Sort)

核心思想:将未排序元素逐个插入已排序序列对应位置。

  • 时间复杂度:平均 / 最坏 O(n2),最好 O(n)(基本有序)
  • 空间复杂度:O(1)
  • 稳定性:稳定

解题步骤

  1. 首元素视为已排序,从第 2 个元素开始。
  2. 取当前元素,向前扫描已排序区,大于当前值则后移。
  3. 找到合适位置插入,直至全部处理。

蓝桥常考:近乎有序数据、小规模数据、作为高级排序优化(如快排、归并)。

四、归并排序(Merge Sort)

核心思想:分治法 —— 递归拆分至单元素,再两两合并有序序列。

  • 时间复杂度:平均 / 最坏 / 最好 O(nlogn)
  • 空间复杂度:O(n)
  • 稳定性:稳定

解题步骤

  1. 分解:将数组二分,递归拆分至长度 1。
  2. 合并:双指针遍历两有序子数组,取小元素放入结果。
  3. 复制剩余:处理任一子数组剩余元素。

蓝桥常考:逆序对统计(高频)、外部排序、分治思想、大数据量稳定排序。

五、快速排序(Quick Sort)

核心思想:分治法 —— 选基准值,分区(小左大右),递归排序子区间。

  • 时间复杂度:平均 O(nlogn),最坏 O(n2)(已序 / 逆序)
  • 空间复杂度:O(logn)(递归栈)
  • 稳定性:不稳定

解题步骤

  1. 选基准:随机 / 三数取中选 pivot。
  2. 分区:遍历数组,小于 pivot 放左,大于放右。
  3. 递归:对左右子数组重复上述步骤。

蓝桥常考:手写快排、第 K 大 / 小数(Partition)、大数据量排序、复杂度优化。

六、堆排序(Heap Sort)

核心思想:利用完全二叉树的堆结构,建堆后反复取堆顶并调整。

  • 时间复杂度:平均 / 最坏 / 最好 O(nlogn)
  • 空间复杂度:O(1)
  • 稳定性:不稳定

解题步骤

  1. 建堆:从最后非叶节点向前调整,构建最大 / 最小堆。
  2. 交换:堆顶与末尾元素交换,确定最大元素位置。
  3. 调整:堆大小减 1,重新调整堆,重复至有序。

蓝桥常考:TopK 问题、优先级队列、海量数据前 N 大、时间复杂度。

七、桶排序(Bucket Sort)

核心思想:按值范围分桶,桶内排序后合并。

  • 时间复杂度:平均 O(n+k),最坏 O(n2)
  • 空间复杂度:O(n+k)
  • 稳定性:稳定(桶内用稳定排序)

解题步骤

  1. 分桶:确定桶数与区间,映射元素至对应桶。
  2. 桶内排序:对非空桶用插入 / 快排等。
  3. 合并:按桶序输出所有元素。

蓝桥常考:均匀分布数据、浮点数排序、频率统计、空间换时间。

八、基数排序(Radix Sort)

核心思想:按低位到高位(或反向)逐位用稳定排序(如桶 / 计数)。

  • 时间复杂度:O(d×(n+k))(d 为位数,k 为基数)
  • 空间复杂度:O(n+k)
  • 稳定性:稳定

解题步骤

  1. 取位:从最低位开始,取当前位数字。
  2. 分桶:按位值入对应桶(0~9)。
  3. 收集:按桶序收集,处理更高位,直至最高位。

蓝桥常考:整数 / 字符串排序、大数据量线性时间、位数相关问题。


九、常考题型汇总

  1. 基础实现:手写冒泡 / 选择 / 插入 / 快排 / 归并。
  2. 特性辨析:时间 / 空间复杂度、稳定性、适用场景对比。
  3. 经典应用
    • 归并:逆序对(高频)、外部排序
    • 快排:第 K 大 / 小、区间排序
    • 堆:TopK、优先级队列
    • 桶 / 基数:频率统计、大数据线性排序
  4. 综合题:排序 + 二分、贪心、DP、字符串处理。

十、近五年真题示例(2021–2025)

1. 2022 省赛 PythonB 组 - 数位排序

题目:给定 n 个数,按各位数字和升序,和相同按数值升序。解法:自定义排序键(数字和 + 原数),用快排 / 内置 sort。

2. 2023 国赛 PythonA 组 - 选段排序

题目:选区间排序,使 Aq​−Ap​ 最大。解法:枚举区间 + 排序 + 求值,或预处理前缀最值优化。

3. 2024 省赛 C/C++B 组 - 小朋友排队

题目:相邻交换排序,求最小不高兴度总和。解法:归并排序求逆序对,累加每个元素逆序数。

4. 2025 省赛 C/JavaA 组 - 最短距离

题目:点集排序后求相邻距离和最小。解法:坐标排序后贪心计算。

5. 2021–2025 填空题高频
  • 快排基准选择、分区次数
  • 归并合并比较次数
  • 堆排序调整次数
  • 各算法复杂度、稳定性判断

十一、备考建议

  • 基础:熟练手写冒泡、插入、选择。
  • 重点快排(Partition)、归并(逆序对)、堆排序(高频核心)。
  • 技巧:大数据量优先用内置 sort;均匀分布用桶 / 基数。
  • 真题:重点练逆序对、第 K 大、数位排序、区间排序等典型题。
http://www.jsqmd.com/news/772079/

相关文章:

  • 别再白花钱了!FDM打印层纹,我亲测水补土到底有没有用(附尚色喷漆枪使用体验)
  • 5分钟快速解锁Steam游戏:Onekey智能配置工具完全指南
  • 使用Python快速接入Taotoken并调用GPT模型完成对话
  • 2026年祛痘加盟避坑指南:安全草本配方,专注修护效果 - 打我的的
  • 如何在 Hermes Agent 中配置 Taotoken 作为自定义模型提供方
  • create-next-stack:Next.js项目脚手架工具全解析与实战指南
  • 突破性方案:Sass混合器实现跨设备HiDPI图像自适应优化
  • 小米手表表盘设计终极指南:用Mi-Create打造你的专属智能穿戴界面
  • 3个技巧突破气象数据格式转换瓶颈:从GRIB到ARL的无缝对接
  • 从“抽象等待”到“具体倒数”:手写一个用户自定义倒计时器,重塑你对时间流逝的感知
  • 如何将ipyvolume可视化嵌入网页:完整部署教程
  • 【完整源码+数据集+部署教程】验证码图像分割系统源码&数据集分享 [yolov8-seg-p2&yolov8-seg-C2f-DCNV2等50+全套改进创新点发刊_一键训练教程_Web前端展示]
  • overlay-web:现代化Web覆盖层工具,简化前后端部署与微前端聚合
  • macOS外接显示器亮度控制终极指南:MonitorControl让你的显示器像苹果原生屏幕一样好用
  • 为Claude构建专属代码知识库:从通用AI到领域专家的转变
  • AISMM到底是什么?2026大会透露的7项核心指标将重构AI系统认证体系(附标准草案对比图)
  • 系统分析师备考系列(四)计算机网络与网络安全
  • 3分钟搞定WeakAuras自动更新:告别手动复制的终极解决方案
  • 成都旧房改造/翻新,局改/微改、厨卫翻新哪家好?(锦江、青羊、金牛、成华、武侯) - 成都人评鉴
  • 2026年4月质量好的水处理工艺推荐,水处理/去离子水处理/污水处理/工业水处理/零排放水处理,水处理生产厂家怎么选购 - 品牌推荐师
  • 第4天:Python语言中的运算符
  • 5步快速上手PiliPlus:跨平台B站客户端完全指南
  • 将焦虑量化:一个自定义倒计时器,如何用代码治愈你的“等待不耐症”
  • RAG的数据准备
  • 从‘多普勒效应’到‘速度分辨率’:给算法工程师的雷达测速原理精讲与避坑指南
  • 在自动化脚本中使用 Taotoken 实现多模型轮询调用
  • Wand-Enhancer终极指南:零成本解锁WeMod/Wand高级功能的完整教程
  • java 排序
  • 3步解放双手:MAA智能助手如何让《明日方舟》日常任务变得轻松高效
  • 为什么你的AISMM评估报价比同行高2.8倍?——SITS2026新规触发的4个成本跃迁临界点