维护最大/最小堆函数的循环实现
来源:互联网 发布:爱淘宝怎么开店 编辑:程序博客网 时间:2024/06/06 07:33
《算法导论》练习题6.2-5
MaxHeapify的代码效率较高,但第10行中的递归调用可能例外。他可能使某些编译器产生低效的代码。请用循环控结构取代递归,重写MaxHeapify代码。
代码如下
void MaxHeapify(int A[], int pos, int length)// length 逻辑长度 pos 物理位置{ int key = A[pos]; int childPtr = pos * 2 + 1; while( childPtr < length ) { if(A[childPtr+1]>A[childPtr]) childPtr++; if(A[childPtr]>key) { A[(childPtr-1)/2] = A[childPtr];//每次向上覆盖 childPtr = childPtr * 2 + 1; } else break; } A[(childPtr - 1) / 2] = key;//将key插入回堆当中}
0 0
- 维护最大/最小堆函数的循环实现
- 最小-最大堆的实现
- 最小堆&&最大堆的实现(c++)
- 最小堆&&最大堆的实现(c++)
- 最小堆与最大堆的实现
- 最小堆&&最大堆的实现(c++)
- 最大堆与最小堆的实现
- 寻找最小的k个数(采用维护k个元素的最大堆的方法来实现)
- 最大最小堆的操作以及实现
- 最大堆MaxHeap和最小堆MinHeap的实现
- 最小堆和最大堆的JAVA实现
- Python 技巧(二) 最小堆实现以及维护一个大小为100的最小堆
- 最大堆、最小堆C++实现
- POJ 2010 Moo University - Financial Aid 堆的高级应用 -- 维护最小(最大和)
- 运用比较器实现机制(函数对象和指针对象)实现最大堆和最小堆
- 最小最大堆(双端堆)的实现(Java版)
- 【算法】堆,最大堆(大顶堆)及最小堆(小顶堆)的实现
- 【算法】堆,最大堆(大顶堆)及最小堆(小顶堆)的实现
- jsp知识点
- 32c3 ctf writeup
- 全排列递归思想
- 结构化随机森林源码分析
- Collections.Sort()方法的使用方式
- 维护最大/最小堆函数的循环实现
- windows下配置eclipse + Python + PyDev + tornado,并使用pylint进行静态检测
- IOS学习日志(OC)1.6
- 100. Same Tree
- 实习电面小记
- Linux入门导读
- javaWeb之Servlet的工作原理与生命周期
- iOS 跳转到系统的设置界面
- CDOJ 1269 ZhangYu Speech 数组处理