java - 是否可以在事先不知道输入大小的情况下实现堆?

标签 java algorithm data-structures heap

比如说,我连续输入了未知大小的整数。在任何时刻,当接收到 k 个元素作为输入时,我想要一个大小为 k 的堆。如何在不事先初始化一定长度的数组的情况下实现这一点?

最佳答案

使用基于二叉树的堆。您不需要知道大小限制。

http://interactivepython.org/runestone/static/pythonds/Trees/BinaryHeapImplementation.html

即使使用基于数组的实现,您也可以在容量不足时使用分配大小加倍的技巧。它将具有相同的时间复杂度。

Use ArrayList

why use ArrayList?

关于java - 是否可以在事先不知道输入大小的情况下实现堆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40122953/

相关文章:

algorithm - 寻找二叉树最大深度时的最坏情况

尝试重写父类(super class)接口(interface)时,Java 编译器出错

java - 具有多个条件的 Hibernate Join 表,但 @WhereJoinTable 不起作用

java - 找到有障碍物的两点之间的最短路径

algorithm - 选择带分隔符的数字序列中第 i 个最小数的最佳方法

python - 在 Python 中生成非常大的文本文件的时间性能

c++ - 具有数组元素的 STL 堆栈

c - C 中的意外输出(树的遍历)

java - ProcessBuilder 不能正确处理多个参数

java - 检查Set中是否存在java对象