我有算法
def alg(a):
if a == 0:
return 1
elif a % 2 == 1:
return alg(a - 1)
else:
return alg(a / 2)
并且不确定它的复杂性是什么。一个分支的复杂度为 O(N),另一个分支的复杂度为 O(log(N))。
在这种情况下,您是否说该算法具有 O(N) 的复杂度,因为这是最坏的情况,还是在这种情况下复杂度完全不同?
我有算法
def alg(a):
if a == 0:
return 1
elif a % 2 == 1:
return alg(a - 1)
else:
return alg(a / 2)
并且不确定它的复杂性是什么。一个分支的复杂度为 O(N),另一个分支的复杂度为 O(log(N))。
在这种情况下,您是否说该算法具有 O(N) 的复杂度,因为这是最坏的情况,还是在这种情况下复杂度完全不同?