2009-08-13 95 views
21

任何人都可以给我提供一个网站,其中包含主要Java数据结构的摘要以及它们各自在时间上的复杂性(对于某些给定的操作,如添加,查找,删除等)。 Hashtable s是O(1)用于查找,而LinkedList s是O(n)。一些细节,如内存使用情况也会很好。Java数据结构参考

这对于思考算法的数据结构真的很有帮助。

+1

除了Javadocs? – 2009-08-13 21:30:55

+1

是的,java文档让它们全部分开,复杂性不是很容易找到。我不想每个细节,只是一个时间复杂的总结 – 2009-08-13 21:31:52

回答

23

有什么理由认为Java的实现是不同的(在复杂性方面)比一般的,与语言无关的实现?换句话说,为什么不只是指一般参考的各种数据结构的复杂性:

NIST Dictionary of Algorithms and Data Structures

但是,如果你坚持针对Java:

Java standard data structures Big O notation

Java Collections cheatsheet V2(无效链接,但this is the first version of the cheatsheet

+4

感谢http://simplenotions.wordpress.com/2009/05/13/java-standard-data-structures-big -o-notation/ – 2010-08-09 08:57:02

+0

其中两个链接已死亡。我会编辑它,但我不得不改变你的帖子的含义。 – Daniel 2013-04-17 17:37:19

+0

我现在更新了一个链接 – bluish 2013-06-12 12:07:25

0

我不认为有任何单一的网站概述这个(听起来像一个项目,虽然好主意)。我认为问题的一部分是对每个算法运行的理解非常重要。大多数情况下,这听起来像你理解Big-O,所以我会用它作为你最好的猜测。跟随它进行一些基准测试/分析,看看哪些运行速度更快/更慢。

而且,是的,Java docs应该在java.util有大部分此信息。

0

主集合类的时间和空间复杂性应与数据结构已知时间补xity。我认为Java没有具体的东西,例如(如你所说)散列查找应该是O(1)。你可以看看herehere