码迷,mamicode.com
首页 > 编程语言 > 详细

Java 大小根堆的实现

时间:2018-07-14 16:42:06      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:over   empty   sem   ini   实现   integer   默认   int   system   

Heap是一种数据结构它是一个完全二叉树具有以下的特点:
技术分享图片

  • Min-heap: 父节点的值小于或等于子节点的值;
  • Max-heap: 父节点的值大于或等于子节点的值;
public class minAndMaxheap {
    //大根堆和小根堆的实现
    //优先级队列默认是小根堆的实现
    static class MaxheapComparator implements Comparator<Integer> {
        @Override
        public int compare(Integer o1, Integer o2) {
            return o2-o1;
        }
    }

    public static void main(String[] args) {
        int[] arrForHeap = { 3, 5, 2, 7, 0, 1, 6, 4 };
        Queue<Integer> minHeap = new PriorityQueue<>();
        //大根堆实现
        Queue<Integer> maxHeap = new PriorityQueue<>(new MaxheapComparator());
        for (int i =0;i<arrForHeap.length;i++) {
            minHeap.add(arrForHeap[i]);
            maxHeap.add(arrForHeap[i]);
        }
        while (!minHeap.isEmpty()) {
            System.out.print(minHeap.poll()+" ");
        }
        System.out.println();
        while (!maxHeap.isEmpty()) {
            System.out.print(maxHeap.poll()+" ");
        }
    }
}
result:
0 1 2 3 4 5 6 7 
7 6 5 4 3 2 1 0 
Process finished with exit code 0

Java 大小根堆的实现

标签:over   empty   sem   ini   实现   integer   默认   int   system   

原文地址:https://www.cnblogs.com/keeya/p/9309617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!