“ in”(包含运算符)的时间复杂度

时间:2019-06-02 21:43:12

标签: 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:

1 个答案:

答案 0 :(得分:3)

您的分析是正确的。

  • 列表包含为O(n),执行O(n)次操作O(n)次为O(n 2 )。
  • 字典查询为O(1),进行O(1)次操作O(n)次为O(n)。