Я пытаюсь вычислить сложность времени и сравнить ее с фактическим временем вычислений.
Если я не ошибаюсь, сложность по времени составляет O (log (n)), но, глядя на фактическое время вычислений, это больше похоже на O (n) или даже O (nlog (n)).
В чем может быть причина этой разницы?
def pow(n):
"""Return 2**n, where n is a nonnegative integer."""
if n == 0:
return 1
x = pow(n//2)
if n%2 == 0:
return x*x
return 2*x*x
Теоретическая сложность времени:
Фактическое время выполнения: