gpt4 book ai didi

java - java中有堆吗?

转载 作者:IT老高 更新时间:2023-10-28 20:30:20 25 4
gpt4 key购买 nike

我正在将一个 C++ 库移植到 Java,我需要一个堆数据结构。是否有标准实现,还是我需要自己做?

最佳答案

对于 Java 8,更新现有的 answer :

您可以将 Java 优先级队列用作堆。

Min Heap: --> 保持 min 元素始终在顶部,因此您可以在 O(1) 中访问它。

PriorityQueue<Integer> minHeap = new PriorityQueue<Integer>();

Max Heap: --> 保持最大元素始终在顶部,与上面的顺序相同。

PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Comparator.reverseOrder());

(Integer o1, Integer o2) -> Integer.compare(o2, o1)- Integer.compare(o1, o2) 相同从其他答案中建议。

你可以使用:
add --> 将元素添加到队列中。 O(log n)
remove --> 获取并删除最小值/最大值。 O(log n)
peek --> 获取,但不删除最小值/最大值。 O(1)

关于java - java中有堆吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14165325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com