用作参数vs循环时间一致性

问题描述 投票:0回答:1

我假设,当将一个函数(称为函数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背景,有人可以澄清这一点。

python python-3.x time-complexity big-o built-in
1个回答
0
投票

我不完全确定将函数“传递”到函数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。

© www.soinside.com 2019 - 2024. All rights reserved.