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)