java - 是否有完整的 Big-O Java 数据结构列表?

标签 java data-structures big-o

<分区>

问题几乎说明了一切。具体来说,我想要结构中所有方法的 Big-O,除了通常的方法。文档对此很少提及。

附录

对于那些投票关闭的人,我对基本的添加、删除、迭代器等不感兴趣 这些来源对于经常使用的方法来说很好,但我更感兴趣的是其余部分的算法效率。

比如TreeMap.keySet()的效率如何?

最佳答案

Java 集合算法效率: Source

数组列表

  • 获取、设置:O(1)
  • 添加、删除:O(n)
  • 包含,indexOf:O(n)

HashMap

  • 获取、放置、删除、包含 key :O(1)

哈希集

  • 添加、删除、包含:O(1)

链接哈希集

  • 添加、删除、包含:O(1)

链表

  • 获取、设置、添加、删除(从任一端):O(1)
  • 获取、设置、添加、删除(从索引中):O(n)
  • 包含,indexOf:O(n)

优先队列

  • 偷看:O(1)
  • 添加、删除:O(logn)

TreeMap

  • 删除、获取、放置、包含 key :O(logn)

树集

  • 添加、删除、包含:O(logn)

关于java - 是否有完整的 Big-O Java 数据结构列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4100677/

相关文章:

Java --- 如何处理反序列化未知数量的 byte[]? - java

java - Maven 将项目部署为 Jar - 缺少类定义

c - 在打印链接列表的状态时程序进入无限循环

c# - 模板抽象类在字典中有值

java - 检索类类型,并实例化一个相同类型的新类

java - JUnit 的@Ignore

JSON:更好地定义对象内部或外部的对象类型?

algorithm - 四组合时间复杂度

algorithm - O(n^2) 与 O(n(logn)^2)

algorithm - 暴力数组遍历的复杂度