26

谁能给我一个包含主要Java数据结构摘要的网站的参考资料,以及它们各自的时间复杂性(对于某些给定的操作,如添加、查找、删除),例如Hashtables是O(1)查找,而LinkedLists在...上)。像内存使用这样的一些细节也会很好。

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

4

6 回答 6

23

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

NIST 算法和数据结构词典

但是,如果您坚持 Java 特定:

Java 标准数据结构 Big O 表示法

Java Collections cheatsheet V2(死链接,但这是第一版的备忘单

于 2009-08-13T21:43:35.767 回答
11

最全面的 Java 集合概述在这里

http://en.wikiversity.org/wiki/Java_Collections_Overview

于 2009-08-13T21:43:28.153 回答
2

我发现Collections Framework页面非常有用,特别是 Collections Framework 的大纲,其中简要描述了每个接口/类。不幸的是,没有大 O 信息。

于 2013-06-12T13:35:50.990 回答
2

我看不到这里提到的这个特定资源,我发现它在过去很有用。了解你的复杂性!

http://bigocheatsheet.com/

于 2016-01-05T15:06:32.203 回答
0

我不相信有任何一个网站概述了这一点(尽管听起来对一个项目来说是个好主意)。我认为部分问题在于了解每种算法的运行方式非常重要。在大多数情况下,听起来你理解 Big-O,所以我会用它作为你的最佳猜测。跟进一些基准测试/分析,看看什么运行得更快/更慢。

而且,是的,Java 文档应该在java.util.

于 2009-08-13T21:38:48.603 回答
0

主要集合类的时间和空间复杂度应该对应于已知时间复杂度的数据结构。我不认为有任何关于它的 Java 特定,例如(如你所说)哈希查找应该是 O(1)。你可以看这里这里

于 2009-08-13T21:44:03.050 回答