временная сложность для мульта части можно найти так:
для расчета (мульт AB), (внутренний Accum) называется до а = 1 поэтому у нас нет какого-то хвост рекурсии (петля), который итерации над.
мы, таким образом, известны, что временная сложность (мульт AB) является О (а) (= линейная сложности времени)
(к-власти-Мп) также имеет (внутреннюю й Accum) определение, что и петли (до х = 0)
так мы снова O (х) (= линейная сложность времени)
Но: мы не принимали во внимание время, необходимое для вызова функций внутреннего ...
Внутри мы используем определение (mult ab), которое является линейным по временной сложности, поэтому мы имеем следующий случай: в первой итерации mult вызывается с: (mult 1 m) -> O (1)
Вторая итерация это: (mult mm) -> O (m)
Третья итерация: (mult m² m) -> O (m * m) и т. д. Понятно, что это растет до n = 0 (или во внутреннем это становится й = 0)
, таким образом, можно сказать, что временная сложность будет зависеть от т и п: о (т^п)
[править :] вы также можете взглянуть на связанный с этим вопрос, который я задал ранее: Big O, how do you calculate/approximate it?, который может дать вам представление о том, как вы можете справиться с приближением в целом
Эти взгляды, гм, знакомые - я написал их вам неделю или так и раньше? – 2008-10-30 10:34:08