*[Lintcode] Heapify 堆化
来源:互联网 发布:护肤品真假查询软件 编辑:程序博客网 时间:2024/05/14 13:21
Given an integer array, heapify it into a min-heap array.
For a heap array A, A[0] is the root of heap, and for each A[i], A[i * 2 + 1] is the left child of A[i] and A[i * 2 + 2] is the right child of A[i].
堆化,思路是利用堆排序原理。对每一个非叶子节点进行判断,是否符合最小堆特征。不符合时,调整,并针对调整的节点递归调用堆化函数。
public class Solution { /** * @param A: Given an integer array * @return: void */ public void heapify(int[] A) { for(int i = A.length / 2; i >= 0; i--) heapify(A, i); } void heapify(int[] A, int last) { int left = 2 * last + 1; int right = 2* last + 2; int small = last; if(left < A.length && A[left] < A[small]) { small = left; } if(right < A.length && A[right] < A[small]) { small = right; } if(small != last) { int tmp = A[small]; A[small] = A[last]; A[last] = tmp; heapify(A, small); } }}
0 0
- *[Lintcode] Heapify 堆化
- Lintcode - Heapify
- lintcode:Heapify
- 130.Heapify-堆化(中等题)
- 数组建堆(heapify)
- LintCode-堆化
- lintcode-堆化-130
- LintCode:堆化
- 堆化-LintCode
- Heapify
- 堆排序之MAX-HEAPIFY注释
- 最大堆维护,MAX-HEAPIFY非递归伪代码
- LintCode 130 [递归]堆化---堆的调整
- 第六章堆排序之“保持堆的性质MAX-HEAPIFY”(递归版)
- 第六章堆排序之“保持堆的性质MAX-HEAPIFY”(迭代版,练习6.2-5)
- 4-5 基础堆排序和Heapify(两个版本的基于堆的排序算法)
- 挖掘算法中的数据结构(四):堆排序之 二叉堆(Heapify、原地堆排序优化)
- 关于堆排序中MAX-HEAPIFY中时间复杂度的分析
- 关于链表倒序
- 【观点讨论与支撑】读书到底有没有用?
- Trie树的学习
- 分布式事物处理方式要点
- DBCA创建数据库实例
- *[Lintcode] Heapify 堆化
- 众数问题
- TRIGGER的上升和下降的检测简单的仿真
- Android 实现带指示器的自动轮播式ViewPager
- 数字货币算法
- Android多渠道打包(二):友盟多渠道打包
- 解惑 spring 嵌套事务
- mybatis association 映射:同文件中的使用
- 使用shell下载第三方网站的js和css文件