堆(heapsort)的有关概念
来源:互联网 发布:个人域名备案企业网站 编辑:程序博客网 时间:2024/06/16 20:03
关于堆的一些基本概念
- 堆:你可以把他看成是一个数组,近似的看成一个完全的二叉树,从二叉树顶端开始,从上到下,从左到右,按这个顺序的值组成了数组里的值。
- 最大堆(大根堆):除了根节点以外的任意父节点的值都要大于等于其子节点的值。(你可以想象成,在那个堆的二叉树图中,上面节点的值要大于等于下面节点的值)
- 最小堆(最小堆):除了根节点以外的任意父节点的值都要小于等于其子节点的值。(同理你也可以想象,在那个堆的二叉树图中,上面节点的值要小于等于下边节点的值)
- 特殊堆:当你所有节点的值都是一样时,此时既是最大堆,也是最小堆。
- 高度:任意节点都有高度,表示为此节点开始到叶节点最长简单路径上边的数目,进而我们可以把根节点的高度定义为堆的高度。
2.一些结论
- 高度为
h 的堆中,元素个数最多是2h+1−1 (此时是一个满二叉树) ;最少就是2h−1+1 个元素(完全二叉树的最后一成只有一个子叶)。 - 含
n 个元素的高度为⌊lgn⌋ - 在最大堆的任意子树中,该子树所包含的最大元素在该子树的根节点上。(这个从定义上可以得出结论,或者用数学归纳法也可以证明)
- 若一个最大堆的所有元素都不想同,则该堆的最小元素应该在最底部的叶子节点上
- 一个按从小到大排好序的数组是一个最小堆,相反若是从大到小排序是一个最大堆
- 当用数组表示存储
n 元素的时候, 叶子节点的下标分别为:⌊n/2⌋+1,(⌊n/2⌋)+2,....,n
阅读全文
0 0
- 堆(heapsort)的有关概念
- heapsort(堆排序)的代码实现
- 一个简单的堆排序(heapsort)
- 堆排序(HeapSort)
- 堆排序(Heapsort)
- 堆排序 (Heapsort)
- 堆排序(heapsort)
- 堆排序(HeapSort)
- 堆排序(heapsort)
- 堆排序(heapsort)
- 堆排序(Heapsort)
- 堆排序(HeapSort)
- 堆排序(Heapsort)
- 堆排序(HeapSort)
- 堆排序(heapsort)
- 堆排序(HeapSort)
- 堆排序(1)HeapSort
- HeapSort(堆排序算法)
- c++ RTTI
- 精确线搜索-黄金分割法
- Vmware虚拟机三种网络模式详解
- hdu 1284 完全背包决策数
- (部分伪)面向对象视频笔记
- 堆(heapsort)的有关概念
- 【CSP201703-4】地铁修建
- jQuery选择器
- web网页前端开发设计常用编辑器
- LATM格式
- C++解析AVI文件格式学习总结
- Java Web 文章管理系统(Jsp+Ajax+JDBC+MySql实现)
- 装python-MySQL驱动
- (5A)HttpServletResponse:getWriter和getOutputStream()、sendRedirect()、session(简单理解)、文件下载、页面缓存