建堆
2015-12-07 16:08
267 查看
建堆过程就是根据数组元素进行最大堆的创建,可以利用堆维护的性质,堆维护见博客。在进行创建时,将数组的最后一半元素视为叶子,对前一半利用堆维护的性质进行建堆。时间复杂度为O(n)代码如下:
建立最小堆类似。
void Insert::BuileMaxHeap(int A[],int total) { int roots=total/2-1;//建堆时,把数组元素后一半的视为完全二叉树即堆的叶子. for(;roots>=0;--roots) { MaxHeapIFY(A,roots,total);//堆维护函数 } }
建立最小堆类似。
相关文章推荐
- Windows下用VS调用igraph库
- 使用shell定时自动备份mysql数据库
- 2015年12月7日
- pxe无人值守
- 第十二周 项目四(1)-是否有简单路径?
- 173、Binary Search Tree Iterator
- Mongodb启动方法:设定参数启动;从设置文件启动
- ArcGIS Engine DEM拉伸渲染
- 创建圆角 抛出一个错误:二元运算符“|”不能用于两个UIRectCorner操作数
- Python自动化测试工具Splinter简介和使用实例
- C 推箱子游戏
- DTO--数据传输对象
- 设计模式——创建模式
- 获取main方法的返回值
- 室内地图
- 学习使用Fiddler(一)
- Web.XMl中的各种配置
- JDBC+分页--【DRP】
- swift学习之Label
- Extjs布局——layout: 'card'