函数仅在循环结束时运行时的时间复杂度?

Time Complexity when a function only runs at the end of a loop?

如果您有一个线性复杂度的函数,它只在循环结束时运行一次,那么最终函数的复杂度是多少?

def f(n):
    for i in range(0,n):
        if i==n-1:
            some_linear_complexity_function()
    return

复杂度是 0(n) 还是 O(n^2)? 谢谢。

您定义的函数实际上等同于以下代码:

def f(n):
    for i in range(0,n-1):
        continue            # do nothing
    some_linear_complexity_function()
    return

现在,假设 some_linear_complexity_function 依赖于与 for 循环相同的 n,则 f(n) 的时间复杂度将为 O(n)

但是,如果 some_linear_complexity_function 依赖于其他值 mf(n) 的时间复杂度实际上是 O(max(m,n))