Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基本的时间复杂性问题。这个简单函数的时间复杂度_Python_Time Complexity - Fatal编程技术网

Python 基本的时间复杂性问题。这个简单函数的时间复杂度

Python 基本的时间复杂性问题。这个简单函数的时间复杂度,python,time-complexity,Python,Time Complexity,我对时间的复杂性一无所知。我在寻找这段代码的时间复杂性 def func(arg): list= [] for i in range(len(arg): list.append(arg.count(i) return list 我知道循环会变成O(n),但在python中count也是O(n),这会使这个函数变成O(n)还是O(n2)?循环中有一个循环: for i in range(len(arg)): # outer loop => O

我对时间的复杂性一无所知。我在寻找这段代码的时间复杂性

def func(arg):
  list= []
  for i in range(len(arg):       
      list.append(arg.count(i)     
  return list

我知道循环会变成O(n),但在python中count也是O(n),这会使这个函数变成O(n)还是O(n2)?

循环中有一个循环:

for i in range(len(arg)): # outer loop => O(n)
      arg.count(i)  # inner loop hidden inside a function => O(n)
这就是O(n^2)

如果您想要两个求和为
O(n)
的循环,则需要如下内容:

for x in range(N): # O(N)
    ... # do stuff

for y in range(N): # O(N)
    ... # do other stuff
总体复杂性将是,所以

O(n^2)。 外部循环执行n次内部语句(即O(n)),因此我们得到二次复杂度

O(N) + O(N) = O(2 * N) ~= O(N)