912 字
2 分钟
考研专业课学习记录2026-07-16
2026-07-16

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

今日学习内容#

今日花费1.5小时完成考研408数据结构模块中堆排序相关知识点的系统学习,涵盖堆的基础概念、堆排序的核心原理、算法实现流程及考点细节。

AI知识点带复盘#

核心知识点梳理#

  1. 堆的基础定义:堆是一棵完全二叉树,分为大顶堆和小顶堆。大顶堆要求每个父节点的值都大于等于其子节点的值,堆顶元素为全局最大值;小顶堆则要求每个父节点的值小于等于其子节点的值,堆顶元素为全局最小值。408考纲中堆排序默认采用大顶堆实现升序排序。
  2. 堆的顺序存储:堆通常采用数组实现完全二叉树的顺序存储,下标为i的节点的左子节点下标为2i+1,右子节点下标为2i+2,父节点下标为(i-1)/2(整数除法),这是堆排序代码实现的核心映射关系。
  3. 堆排序的核心流程
    • 建堆:将无序序列构建为大顶堆,建堆的起始位置为最后一个非叶子节点,即下标为n/2 -1的节点,从后向前依次对每个非叶子节点执行向下调整(siftDown)操作,建堆的时间复杂度为O(n)O(n)
    • 排序迭代:将堆顶元素与当前堆的最后一个元素交换,将当前堆的规模减1,随后对新的堆顶元素执行向下调整操作,重复该过程直至堆的规模为1,整体堆排序的时间复杂度为O(nlogn)O(n\log n)
  4. 考研高频考点拓展
    • 堆排序属于选择排序类算法,是原地排序算法,空间复杂度为O(1)O(1)
    • 堆排序是不稳定的排序算法,因为交换堆顶和末尾元素的过程可能破坏相同元素的相对位置;
    • 常考题型包括:给定无序序列构造大顶堆、推演堆排序的每一趟排序结果、计算堆排序的时间复杂度、对比堆排序与其他内部排序算法的优劣。

问题与反思#

  1. 初期对建堆时从n/2-1位置开始向前调整的逻辑理解模糊,容易混淆非叶子节点的边界范围;
  2. 对建堆时间复杂度O(n)O(n)的推导过程掌握不扎实,需要重新梳理完全二叉树的节点层数与调整次数的关系;
  3. 容易混淆堆排序与其他排序算法的稳定性特点,需要单独整理排序算法稳定性对照表强化记忆。

收获与总结#

  1. 彻底掌握了堆的存储结构与节点下标映射规则,能够快速定位完全二叉树中父子节点的位置;
  2. 能够完整推演堆排序的全流程,包括建堆、交换、调整三个核心环节,可以独立完成任意给定序列的堆排序过程;
  3. 明确了堆排序的时间、空间复杂度与稳定性特点,理清了其在408内部排序模块中的定位;
  4. 梳理了堆排序相关的高频考题型,明确了备考的重点方向。

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

文档内容由 AI 辅助生成

分享

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

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

部分信息可能已经过时

目录