【无标题】

【无标题】,第1张

大顶堆、小顶堆的使用
Java 使用 PriorityQueue<>((x, y) -> (y - x)) 可方便实现大顶堆。

默认new的PriorityQueue为小顶堆结构

@Test//这里用来测试小顶堆与大顶堆
    public void test(){

        Queue<Integer> queue = new PriorityQueue<>();

        queue.offer(5);
        queue.offer(7);
        queue.offer(3);
        queue.offer(2);

        System.out.println(queue);//[2, 3, 5, 7]默认为小顶堆,由小到大排序


        Queue<Integer> queue1 = new PriorityQueue<>(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });

        queue1.offer(5);
        queue1.offer(7);
        queue1.offer(3);
        queue1.offer(2);

        System.out.println(queue1);//[7, 5, 3, 2]重写堆排序,由大到小排序

    }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/720426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存