函数仅在循环结束时运行时的时间复杂度?
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
依赖于其他值 m
,f(n)
的时间复杂度实际上是 O(max(m,n))
。
如果您有一个线性复杂度的函数,它只在循环结束时运行一次,那么最终函数的复杂度是多少?
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
依赖于其他值 m
,f(n)
的时间复杂度实际上是 O(max(m,n))
。