我假设,当将一个函数(称为函数B)作为参数传递给函数A时,它不一定会添加到函数A的big-O上。functionA(functionB)
要么len(range(n))
但是如果在迭代过程中调用一个函数,则它确实会改变big-o时间的复杂性。
然后不会遍历内置函数吗?
这是python中的示例:
a=list() # of some array
for _ in range(a):
a.count(1)
我没有CS背景,有人可以澄清这一点。
我不完全确定将函数“传递”到函数B中的意思,除非您用装饰器来表示...无论如何,如果您在另一个函数中调用一个函数,可以肯定地认为您必须考虑嵌套函数的时间复杂度。例如,如果我创建一个函数:
def funcA(i_max, j_max):
for i in range(i_max):
for j in range(j_max):
print("aaaaaaaah")
具有复杂性O(i_max * j_max)
,然后执行另一个功能:
def funcB(k_max):
for k in range(k_max):
funcA(some_i, some_j)
然后,funcB自然会具有复杂度O(k_max * some_i * some_j)
–因此您必须考虑其他函数的big-O。