排序算法-堆排序与优先队列
01 开门见山
堆排序的时间复杂度是O(n*lgn). 因为堆排序是树形结构. "堆"的数据结构来进行信息管理.不仅用在堆排序中, 而且也可以构造一种有效的优先队列.
02 堆
(二叉)堆是一个数组, 可以看成近似完全的二叉树. 树上的每个结点对应数组中的一个元素. 该树是从左向右填充. 如图:
左边是二叉树的形式,右边是数组的形式, 此为大顶堆.
最大堆
就是父结点大于等于子结点的堆.最大元素是在树的根节点.
最小堆
就是父结点小于等于子结点的堆.最小元素是在树的根节点.
建立最大堆过程 如图:
图a
原创
2021-04-06 08:35:08 ·
203 阅读 ·
0 评论