-
堆排实际上是利用堆的性质来进行排序。堆可以看做一颗完全二叉树。
-
堆分为两类:
- 最大堆(大顶堆):除根节点外,堆的每个父节点都大于其孩子节点。
- 最小堆(小顶堆):除根节点外,堆的每个父节点都小于其孩子节点。
- 最大堆和最小堆示意图:
-
数据结构包含逻辑结构和存储结构,对于堆来说:
- 堆的逻辑结构是完全二叉树
- 堆的存储结构可以是链式存储,也可以是顺序存储。在堆排序中我们基于的存储结构是顺序存储。
- 顺序存储示意图:(以最大堆为例)
相关文章
- 10-13堆排序(C++实现)-堆的基本概念
- 10-13STL容器之----string的常见接口介绍及模拟实现部分接口(c++)
- 10-13【C++】“list”的介绍和常用接口的模拟实现
- 10-13【C++】list的模拟实现
- 10-13二叉搜索树的实现[C++]-搜索二叉树
- 10-13数据结构之单链表在不带标准头的情况下C,C#,C++分别怎么实现?-单链表的操作
- 10-13C++ QT 全局信号的实现
- 10-13【C++第十课 - stack_queue】stack、queue的使用、适配器模型stack、queue和priority_queue的底层实现、deque-二、queue的使用
- 10-13深入剖析C++多态的实现与原理-详解
- 10-13C++学习/复习14--list的模拟实现(节点类/迭代器封装成类/list类/测试)