1092 字
3 分钟
考研专业课学习记录2026-07-15
考研专业课学习记录 | 2026-07-15
今日学习内容
今日共计投入2小时系统学习408数据结构中的内部排序算法,重点深入理解冒泡排序与快速排序的核心原理、考点细节与应用场景。
AI知识点带复盘
一、冒泡排序
- 核心原理:通过重复遍历待排序序列,依次比较相邻两个元素的大小,若顺序错误则交换它们,每一轮遍历都会将当前未排序序列中的最大(或最小)元素“冒泡”到末尾的正确位置。
- 考研核心考点
- 时间复杂度:未优化版本下,最坏/平均情况为,最优情况(序列已有序)下,通过设置交换标记优化后可降至;
- 空间复杂度:仅使用常数级额外空间,为;
- 稳定性:属于稳定排序算法,相等元素的相对位置不会因交换发生改变;
- 适用场景:小规模、近乎有序的序列,实现简单但整体效率较低。
- 常见优化:通过设置
flag标记本轮遍历是否发生交换,若未交换则说明序列已有序,可直接提前终止循环。
二、快速排序
- 核心原理:基于分治思想的排序算法,核心步骤为分区(Partition):
- 选取一个基准元素(Pivot);
- 将序列划分为两部分,左侧所有元素小于等于基准,右侧所有元素大于等于基准,基准元素处于最终的正确位置;
- 递归对左右两个子序列重复上述步骤,直至所有子序列长度为1。
- 考研核心考点
- 时间复杂度:最优/平均情况为(每次分区都能将序列均匀划分为两个等长子序列),最坏情况(如有序序列选取首元素作为基准)为;
- 空间复杂度:最优情况为(递归栈深度为),最坏情况为;
- 稳定性:属于不稳定排序算法,跨元素交换可能会改变相等元素的相对位置;
- 常见优化:三数取中法选取基准、随机选取基准避免最坏情况、当子序列长度较小时改用插入排序减少递归开销;
- 分区实现:常考察Hoare分区(双指针法)与Lomuto分区(单指针法)两种经典实现方式。
三、考点对比
结合408选择题高频考点,对比冒泡排序与快速排序的核心差异:
| 维度 | 冒泡排序 | 快速排序 |
|---|---|---|
| 时间复杂度 | 为主 | 为主 |
| 稳定性 | 稳定 | 不稳定 |
| 空间复杂度 | ~ | |
| 核心思想 | 相邻交换迭代 | 分治递归分区 |
问题与反思
- 对快速排序两种分区实现的边界条件处理仍不够熟练,容易在模拟分区过程中出现指针越界的错误;
- 对冒泡排序优化版本的触发条件记忆不够清晰,容易混淆最优复杂度的适用场景;
- 快速排序的最坏时间复杂度的推导场景容易和其他排序算法混淆,需要结合具体序列案例再巩固练习。
收获与总结
- 完整梳理了冒泡排序的基础实现与优化思路,明确了其在408考试中的考点范围;
- 掌握了快速排序的核心原理与两种分区实现方式,能够独立推导其时间复杂度与空间复杂度;
- 明确了两种排序算法的稳定性、复杂度差异与适用场景,能够快速应对408选择题中的排序算法对比类题目;
- 学会了从考研命题角度拆解知识点,将基础原理与考试考点结合复盘,提升学习效率。
💡 碎碎念:踏实吃透每一个知识点!
文档内容由 AI 辅助生成
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
考研专业课学习记录2026-07-15
https://elysiaweb.vercel.app/posts/408/7-15/ 部分信息可能已经过时
相关文章 智能推荐