PriorityQueue里面的的minheap和maxheap

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;
        }
     }
)
阅读更多
文章标签: heap
个人分类: LeetCode
上一篇线段树&amp;315 LeetCode:Count of Smaller Numbers After Self
下一篇Leetcode3:Longest Substring Without Repeating Characters
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭