建立最小堆的下滑算法
来源:互联网 发布:淘宝子账号在哪关闭 编辑:程序博客网 时间:2024/05/16 15:27
//从节点start开始直到m为止,自上向下比较,如果子女的值小于父节点的值,则
//关键码小的上浮,继续向下层比较。
void siftDown(int *a,int start, int m){int i = start, j = 2 *i +1;int tmp = a[i];while(j<=m){if(j<m && a[j]>a[j+1])j++;if(tmp <=a[j]) break;else{a[i] = a[j];i = j;j = 2*j+1;}}a[i] = tmp;}void minHeap(int *a, int len){int currentSize = len;int currentPos = (currentSize-2) / 2;while(currentPos>=0){siftDown(a, currentPos,currentSize-1);currentPos--;}}
<pre name="code" class="cpp">int main(){int i,j;int a[] = {53,17,78,9,45,65,87,23};int len = sizeof(a) / sizeof(int);minHeap(a, len);for(i = 0; i < len; i++){cout<<a[i]<<" ";}cout<<endl;return 0;
}
0 0
- 建立最小堆的下滑算法
- 最小堆的建立
- 最小堆的建立
- 数据结构与算法之最小堆的建立
- 最大堆最小堆的建立
- 最小堆怎么建立
- 最小堆建立
- priority_queue 建立最小堆
- 算法入门--堆排序2(建立最小堆,从大到小)
- LRU算法的最小堆实现
- 最小堆的实现--topk算法
- 算法导论 最小堆
- 【算法——Python实现】最小索引堆,最小堆的优化
- 经典算法: 堆排序的原理和实现, 建立堆,调整堆
- 【算法】堆,最大堆(大顶堆)及最小堆(小顶堆)的实现
- 【算法】堆,最大堆(大顶堆)及最小堆(小顶堆)的实现
- 【算法】堆,最大堆(大顶堆)及最小堆(小顶堆)的实现
- 堆的建立&堆排序
- React Native 环境搭建 (Android)
- CentOS 6.5 安装配置Tomcat7服务器
- 环境配置:adb
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- elastic-job 构建
- 建立最小堆的下滑算法
- Chess
- 创建链表并插入数据(有序)
- 牛客网做题笔记--洗牌问题
- 控制反转
- 2017年爱奇艺校招模拟笔试编程
- 宜信技术研发中心暑假实习总结
- P2P中四大算法之Chord算法原理
- java的ThreadPoolExecutor与BlockingQueue