【发布时间】:2022-01-04 17:48:54
【问题描述】:
如何计算 e3 的时间复杂度? 我知道 e3_aux 的复杂度是 O(n),但是 e3 中的 if 语句每 1 到 n 次调用一次。 我知道答案是T(n)=T(n-1)+O(n),有人能解释一下为什么吗?
函数 e3(A[1…n],p):
if ????[????] = 0
return 0
if ???? = ????
????3_????????????(????, 1)
return ????3(????, 1) + 1
return ????3(????, ???? + 1)
函数 e3_aux(A[1…n],i):
if ???? = ???? + 1
return
????[????] ← ????[????] − 1
????3_????????????(????, i + 1)
【问题讨论】:
-
我相信你用最坏的情况来表达,在这种情况下是 n*n,所以 n^2。
标签: java recursion time-complexity