java - 我应该为高效方法选择高时间复杂度数据结构还是高空间复杂度数据结构?

标签 java performance data-structures time-complexity

我必须在 ArrayList 和 LinkedList 两种数据结构之间做出选择。 我有两个操作 op_one,op_two。

如果我选择 ArrayList - 我会以

for op_one ------ O(n), and at maximum n re-allocations
for op_two ------ O(1), and at maximum n re-allocations

如果我选择 LinkedList - 我会结束

for op_one ------ O(n), and zero re-allocations
for op_two ------ O(n), and zero re-allocations

我将存储数百万个可比较的元素。我将同样有可能进行这两项操作。我应该选择哪一个。

最佳答案

我建议您将它们放在一起计时,并采用一种现实的方式,看看哪个更快。如果它们没有显着差异,我会使用您认为最简单的方法。

虽然 ArrayList 和 LinkedLIst 的顺序在空间上是相同的,但 ArrayList 要小得多。

所有相同的清晰度通常是最重要的,除非你知道你有性能问题。

关于java - 我应该为高效方法选择高时间复杂度数据结构还是高空间复杂度数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12328911/

相关文章:

java - jconnect2.jar 的 maven 存储库是什么

performance - AWS 海王星性能

c - 具有数百万个节点的图形数据结构(社交网络)

java - java源码中的Maven groupId和包名

java - 替换 Java 的 switch 语句

java - 无法将值传递给PreparedStatement - 最后第五个参数被跳过

java - 数据结构与算法实现-字典

sql-server - 数据库表什么时候变得足够大以至于索引有用?

performance - Julia 比Java慢得多

java - 在链表末尾插入节点