【问题标题】:Java Data Structures ReferenceJava 数据结构参考
【发布时间】:2009-08-13 21:29:12
【问题描述】:

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

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

【问题讨论】:

  • Javadocs 以外的?
  • 是的,java 文档将它们全部分开,而且复杂性并不容易找到。我不想要每个细节,只需要时间复杂度的摘要

标签: java data-structures time-complexity summary


【解决方案1】:

是否有理由认为 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

【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      http://bigocheatsheet.com/

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多