CodeRoadMap
路线图课程知识库文章题库资源社区我的学习
CodeRoadMap

程序员的学习成长路线图。登录解锁全部课程,并同步路线图与课时进度。

学习

  • 路线图
  • 课程
  • 文章
  • 题库
  • 知识库

更多

  • 资源
  • 社区
  • 我的学习
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·coderoadmap@126.com
开发路线图/数据结构与算法路线图/堆排序
阶段一

堆排序

节点说明与学习资源

堆排序是一种高效、基于比较的排序算法。它利用一种称为“二叉堆”的数据结构,通过将其输入分成已排序和未排序区域,并通过提取最大元素并将其移动到已排序区域来迭代地缩小未排序区域。它是一种原地算法,但不是稳定的排序。它涉及构建一个最大堆,这是一个基于树的特殊数据结构,然后将根节点(最大元素)与最后一个节点交换,堆的大小减一,并对根节点进行堆化。现在最大元素位于列表的末尾,这个步骤会重复进行,直到所有节点都排序完成。堆排序提供了一种良好的最坏情况运行时间 O(n log n),无论输入数据如何。

← 上一节点选择排序下一节点 →搜索算法