用大0符号表示我的代码的复杂度是多少?



有一段代码,我很好奇这段代码在大0符号中的算法复杂度。

def listsum(numList):
if len(numList) == 1:
return numList[0]
else:
return numList[0] + listsum(numList[1:])

切片数组的大小是线性的,因此递归关系为

T(0) = 1
T(n) = T(n-1) + n

有渐近解

T(n) ∈ Θ(n^2)

兄弟-一段时间后考虑复杂度为O (n *(n+1)/2)。解释:一维数组上的递归操作可以像构建三角形数一样可视化,因为它们是三角形数。Jarmod是对的,我之前的答案是错的

最新更新