package com.juxuny.heap;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by Juxuny on 2015/2/10.
 */
public class Heap {
    private int MAX = 2 <<...
                            
                            
                                分类:
编程语言   时间:
2015-02-10 21:48:29   
                                阅读次数:
224
                             
                    
                        
                            
                            
                                上一节我们写了树以及二叉树的知识
http://blog.csdn.net/wtyvhreal/article/details/43487095
堆是一种特殊的完全二叉树。
所有父节点都比子节点要小,这样的完全二叉树称为最小堆,反之叫最大堆。
下图一棵完全二叉树,调整为最小堆步骤:
向下调整的代码如下:
从上面可以得到:调...
                            
                            
                                分类:
编程语言   时间:
2015-02-04 18:50:47   
                                阅读次数:
159
                             
                    
                        
                            
                            
                                1.堆:通常通过二叉堆,实为二叉树的一种,分为最小堆和最大堆,具有以下性质:任意节点小于它的所有后裔,最小元在堆的根上。堆总是一棵完全树 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。2.最小堆实现: 插入: 1) 将新插入的元素,放置到队列的尾部。 2) 若该元素小...
                            
                            
                                分类:
编程语言   时间:
2015-02-03 17:06:16   
                                阅读次数:
386
                             
                    
                        
                            
                            
                                背景:开始没有仔细想,后来@liu_jc 说简单遂1Y
思路:找出最大堆的鹅卵石数为max,最小堆数为min。如果max-min>=k,则成立。
          证明:对最大堆编号为:a1,a2,a3~amin-1,amin~amax .对最小堆编号为:b1,b2~bmin.
                    让a1和b1,a2和b2,......,amin和bmin颜色一样。
...
                            
                            
                                分类:
其他好文   时间:
2015-02-01 17:52:30   
                                阅读次数:
199
                             
                    
                        
                            
                            
                                二叉堆是一种特殊的堆,二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足堆特性:父节点的键值总是保持固定的序关系于任何一个子节点的键值,且每个节点的左子树和右子树都是一个二叉堆。当父节点的键值总是大于或等于任何一个子节点的键值时为最大堆。 当父节点的键值总是小于或等于任何一个子节点的键值时为最小堆。...
                            
                            
                                分类:
其他好文   时间:
2015-01-26 16:23:16   
                                阅读次数:
163
                             
                    
                        
                            
                            
                                Google面试题股市上一个股票的价格从开市开始是不停的变化的,需要开发一个系统,给定一个股票,它能实时显示从开市到当前时间的这个股票的价格的中位数(中值)。SOLUTION 1:1.维持两个heap,一个是最小堆,一个是最大堆。2.一直使maxHeap的size大于minHeap.3. 当两边si...
                            
                            
                                分类:
编程语言   时间:
2015-01-23 08:19:44   
                                阅读次数:
5176
                             
                    
                        
                            
                            
                                1.堆:类似二叉树
数组对象
2.种类:    最大堆->A[PARENT(i)] >= A[i]
最小堆->A[PARENT(i)] 
3.建堆:Heap_max_Build
   保持堆性质:Heap_max_Ify
    堆排序:Heap_max_Sort
4.Code
#include 
#include 
#define PAR...
                            
                            
                                分类:
编程语言   时间:
2015-01-21 09:01:25   
                                阅读次数:
143
                             
                    
                        
                            
                            
                                Mergeksorted linked lists and return it as one sorted list. Analyze and describe its complexity.对于这道题,之前并不知道java中有一个封装好的数据结构--优先队列。优先队列其实相当于一个最大或最小堆,能...
                            
                            
                                分类:
其他好文   时间:
2015-01-18 18:24:56   
                                阅读次数:
210
                             
                    
                        
                            
                            
                                一. 二叉堆的性质 堆是一种具有堆序性的完全二叉树. 作为一种完全二叉树, (假定空树的高度是-1)它的高度是floor(logN), 高度为h的结点有2^h到2^(h+1) - 1个, 父节点的下标为floor(i/2), 左孩子的下标为2i, 右孩子的下标为2i+1 而所谓堆序性就是(以最小堆为...
                            
                            
                                分类:
其他好文   时间:
2015-01-12 09:14:35   
                                阅读次数:
133
                             
                    
                        
                            
                            
                                (二叉)堆是一个数组,它可以被看成一个近似的完全二叉树。二叉堆可以分为两种形式:最大堆和最小堆。若将记录按从大到小排列,建“小”顶堆。若将记录按从小到大排,建“大”顶堆。说明:在堆排序算法中,我们使用的是最大堆,最小堆通常用于构造优先队列。算法分析:时间复杂度是O(nlogn)。堆排序属于原址排序:...
                            
                            
                                分类:
编程语言   时间:
2015-01-05 23:09:50   
                                阅读次数:
390