python - "in"的时间复杂度(包含运算符)

标签 python list dictionary time-complexity

我只是想知道何时理解像下面这样的算法的时间复杂度。

对于 python 列表,如果我们有一个 for 循环迭代它,然后进行包含检查,那么时间复杂度是否为 O(n^2)。

我知道两者都是 O(n)(或者我认为),所以将它们嵌套在一起会使它变成 O(n^2) 吗?

我想如果这个“列表”真的是一个列表,那么下面这段代码的时间复杂度就是O(n^2)。但如果它是一本字典,它将是 O(n),因为查找是 O(1)。对吗?

提前感谢您的帮助!

for element in list:
    if x in list:

最佳答案

你的分析是正确的。

  • 列表包含是 O(n),执行 O(n) 次 O(n) 次是 O(n2)。
  • 字典查找的复杂度为 O(1),执行 O(1) 次操作 O(n) 次的复杂度为 O(n)。

关于python - "in"的时间复杂度(包含运算符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56419144/

相关文章:

python - 来自其他字典值的最大键在 Python 中的函数

python - 在 Python 中截断为小数点后三位

python - 如何让 PyC​​harm 呈现我创建的图表而不是绘图对象?

java - ArrayList 中 size() 方法的用途

python - 有没有更简单的方法来转换这些 python 对象

Java:迭代 2 个列表的最佳/优雅方式

python - 如何从模块中只加载一个类?

python - 对于具有一列键和一列值的 Pandas 数据框,制作另一列字典

java - 为什么我的 Java Map 无法在 IntelliJ 中编译?

python - 如何通过遵循键列表更改 python 字典中节点的值?