https://cloud.tencent.com/developer/ask/112047

https://blog.csdn.net/chao2016/article/details/82425317

  • 设置, 在特定索引处 检查 元素: O(1)
  • 搜索 O(n) 数组是否未排序, O(log n) 如果数组排序并使用类似于二分搜索的东西,
  • Delete 阵列中没有可用的操作。根据我们的要求,我们可以通过将其设置为某个特定值来象征性地删除元素,例如-1,0等
  • 同样, Insert 对于数组基本上 Set 是在开始时提到的
  • 数组列表:

  • 添加 摊销O(1)
  • 删除 O(n)
  • 包含 O(n)
  • 尺寸 O(1)
  • 链接列表:

  • 插入 O(1) ,如果在头部完成,则 O(n) 在其他任何地方,因为我们必须线性移动链表到达该位置。
  • 删除 O(1) ,如果在头部完成,则 O(n) 在其他任何地方,因为我们必须线性移动链表到达该位置。
  • 正在搜索 O(n)
  • 插入 :如果在头部或尾部完成,则 O(1) O(n) 如果在其他任何地方,因为我们必须线性移动链表到达该位置。
  • 删除 O(1) ,如果在头部或尾部完成,则 O(n) 在其他任何地方完成,因为我们必须线性移动链表到达该位置。
  • 正在搜索 O(n)
  • O(1)
  • Pop O(1)
  • O(1)
  • 搜索 (像查找,像一个特殊的操作): O(n) (我猜是这样)
  • 队列/ Deque /循环队列:

  • 插入 O(1)
  • 删除 O(1)
  • 尺寸 O(1)
  • 二进制搜索树:

  • 插入,删除和搜索 :平均情况: O(log n) ,最差情况: O(n)
  • 插入,删除和搜索 :平均情况: O(log n) ,最差情况: O(log n)
  • 堆/ PriorityQueue(最小/最大):

  • 查找最小值/查找最大值 O(1)
  • 插入 O(log n)
  • 删除最小值/删除最大值 O(log n)
  • 提取最小/提取最大值 O(log n)
  • 查找,删除 (如果有的话): O(n) ,我们将不得不扫描所有的元素,因为它们没有像BST那样排序
  • HashMap中/Hashtable/ HashSet的:

  • 插入/删除 O(1)
  • 重新大小/散列 O(n)
  • 包含 O(1)
  •