1092 字
3 分钟
考研专业课学习记录2026-07-15
2026-07-15

考研专业课学习记录 | 2026-07-15#

今日学习内容#

今日共计投入2小时系统学习408数据结构中的内部排序算法,重点深入理解冒泡排序与快速排序的核心原理、考点细节与应用场景。

AI知识点带复盘#

一、冒泡排序#

  1. 核心原理:通过重复遍历待排序序列,依次比较相邻两个元素的大小,若顺序错误则交换它们,每一轮遍历都会将当前未排序序列中的最大(或最小)元素“冒泡”到末尾的正确位置。
  2. 考研核心考点
    • 时间复杂度:未优化版本下,最坏/平均情况为O(n2)O(n^2),最优情况(序列已有序)下,通过设置交换标记优化后可降至O(n)O(n)
    • 空间复杂度:仅使用常数级额外空间,为O(1)O(1)
    • 稳定性:属于稳定排序算法,相等元素的相对位置不会因交换发生改变;
    • 适用场景:小规模、近乎有序的序列,实现简单但整体效率较低。
  3. 常见优化:通过设置flag标记本轮遍历是否发生交换,若未交换则说明序列已有序,可直接提前终止循环。

二、快速排序#

  1. 核心原理:基于分治思想的排序算法,核心步骤为分区(Partition):
    1. 选取一个基准元素(Pivot);
    2. 将序列划分为两部分,左侧所有元素小于等于基准,右侧所有元素大于等于基准,基准元素处于最终的正确位置;
    3. 递归对左右两个子序列重复上述步骤,直至所有子序列长度为1。
  2. 考研核心考点
    • 时间复杂度:最优/平均情况为O(nlogn)O(n\log n)(每次分区都能将序列均匀划分为两个等长子序列),最坏情况(如有序序列选取首元素作为基准)为O(n2)O(n^2)
    • 空间复杂度:最优情况为O(logn)O(\log n)(递归栈深度为log2n\log_2 n),最坏情况为O(n)O(n)
    • 稳定性:属于不稳定排序算法,跨元素交换可能会改变相等元素的相对位置;
    • 常见优化:三数取中法选取基准、随机选取基准避免最坏情况、当子序列长度较小时改用插入排序减少递归开销;
    • 分区实现:常考察Hoare分区(双指针法)与Lomuto分区(单指针法)两种经典实现方式。

三、考点对比#

结合408选择题高频考点,对比冒泡排序与快速排序的核心差异:

维度冒泡排序快速排序
时间复杂度O(n2)O(n^2)为主O(nlogn)O(n\log n)为主
稳定性稳定不稳定
空间复杂度O(1)O(1)O(logn)O(\log n)~O(n)O(n)
核心思想相邻交换迭代分治递归分区

问题与反思#

  1. 对快速排序两种分区实现的边界条件处理仍不够熟练,容易在模拟分区过程中出现指针越界的错误;
  2. 对冒泡排序优化版本的触发条件记忆不够清晰,容易混淆最优复杂度的适用场景;
  3. 快速排序的最坏时间复杂度的推导场景容易和其他排序算法混淆,需要结合具体序列案例再巩固练习。

收获与总结#

  1. 完整梳理了冒泡排序的基础实现与优化思路,明确了其在408考试中的考点范围;
  2. 掌握了快速排序的核心原理与两种分区实现方式,能够独立推导其时间复杂度与空间复杂度;
  3. 明确了两种排序算法的稳定性、复杂度差异与适用场景,能够快速应对408选择题中的排序算法对比类题目;
  4. 学会了从考研命题角度拆解知识点,将基础原理与考试考点结合复盘,提升学习效率。

💡 碎碎念:踏实吃透每一个知识点!

文档内容由 AI 辅助生成

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

考研专业课学习记录2026-07-15
https://elysiaweb.vercel.app/posts/408/7-15/
作者
程翊雪
发布于
2026-07-15
许可协议
Unlicensed

部分信息可能已经过时

目录