PriorityQueue里面的的minheap和maxheap

原创 2016年08月30日 11:18:07
static class PQsort implements Comparator<Integer> {

        public int compare(Integer one, Integer two) {
            return two - one;//或者返回负数 如-1
        }
    }//这个是max heap的代码

假设有数组 int[] ia = { 1, 10, 5, 3, 4, 7, 6, 9, 8 };
maxheap的顺序就是 {10, 9, 7, 8, 3, 5, 6, 1, 4}

static class PQsort implements Comparator<Integer> {

        public int compare(Integer one, Integer two) {
            return one - two;//或者返回正数 比如1
        }
    }//这个是minheap的代码

minheap的顺序就是{1, 3, 5, 8, 4, 7, 6, 10, 9}

这是一个接口来实现比较器, 这种情况下实现的是implements Comparator 里面实现compare函数。public int compare(Integer one,Integer two)

还有一个在java中实现的minheap和maxheap的是

PriorityQueue<Pair> queue = new PriorityQueue<Pair>(
     new Comparator<Pair>(){
        public int compare(Pair a,Pair b){
               return b.sum - a.sum;
        }
     }
)

【数据结构与算法】最小堆 minheap

最小堆与最大堆实现思路一样,只不过顺序不同,这里只记录最小堆。 最小堆的定义是,一棵完全二叉树,每一个节点都大于等于其父节点。完全二叉树是叶子都在最后一层,且尽量靠左。 实现方面可以使用链表或者数...
  • u010900754
  • u010900754
  • 2017年02月01日 06:53
  • 2096

最大堆MaxHeap和最小堆MinHeap的实现

       优先队列式分支界限法解装载问题中需要用到最大堆MazHeap,但是书上没有给出代码,所以只能我们自己写了,下面我贴出这两个数据结构的代码,以供参考。解决了这两个数据结构,那么优先队列式分...
  • xw13106209
  • xw13106209
  • 2009年12月04日 20:07
  • 8893

最大堆(max-heap)和最小堆(min-heap)

在STL中,二叉堆是通过priority_queue的类模板实现的,标准头文件是。在STL中实现的是最大堆(max-heap)。 成员函数有: void push (const Object & ...
  • jackieting
  • jackieting
  • 2013年11月15日 14:51
  • 2659

java数据结构之MaxHeap

MaxHeap:一个完全二叉树,父节点比子节点大,可用数组表示 设父节点为i,则左子节点为2*i,右子节点为2*i+1   public interface MyMaxHeapInterf...
  • conjimmy
  • conjimmy
  • 2011年12月01日 11:19
  • 2893

大-小顶混合堆的实现与应用(a min-max heap)

一般情况下我们使用的堆都是大顶堆或者小顶堆,其能实现在常数时间内获得数组的最大值或者最小值,同时满足在对数时间内删除和插入元素。但是如果要同时实现即能在常数时间内获得最大值和最小值,又能在对数时间内删...
  • shaya118
  • shaya118
  • 2014年11月18日 17:49
  • 954

最小堆的插入、删除和创建的C语言实现

堆是一种特殊的“队列”,它取出元素的顺序是依照元素的优先级大小,而不是元素进入队列的先后顺序。堆具有两个特性,1.结构性:它是能用数组表示的完全二叉树。2.堆序性:任一结点的关键字是其子树所有结点的最...
  • qq_30163461
  • qq_30163461
  • 2017年11月30日 23:26
  • 140

通向码农的道路(开源 libevent min_heap 实现)

以前项目,我们在对应timer事件 ,传统都采取的 每帧循环  遍历队列所有数据,检测是否满足条件。 比如( 海盗奇兵,部落冲突 ,都存在建筑升级,那么服务器再跑的时候 我如何知道,每个建筑什么时候...
  • a474711079
  • a474711079
  • 2015年08月07日 17:21
  • 586

libevent 杂项篇--最小堆miniheap

什么是min heap ?     首先看什么是heap,heap是这样一种数据结构:1.它首先是一棵完成二叉树;2.父亲节点始终大于(或其他逻辑关系 )其孩子节点。根据父亲节点与孩子节点的这...
  • peterlin666
  • peterlin666
  • 2014年06月19日 16:18
  • 1249

MinHeap MaxHeap using Queue (PriorityQueue)

package com.test; import java.util.Comparator; import java.util.PriorityQueue; import java.util.Qu...
  • Trespass2016
  • Trespass2016
  • 2015年09月19日 13:25
  • 46

maxHeap & minHeap to find median

用一个 maxheap 和一个minHeap 来找中值。   默认 maxheap.size()>= minHeap.size() 所以每次读出应该是从maxheap 中,或者是两者的中值。 ...
  • u013249709
  • u013249709
  • 2014年03月01日 03:28
  • 388
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PriorityQueue里面的的minheap和maxheap
举报原因:
原因补充:

(最多只允许输入30个字)