Вычислительная сложность алгоритмов сортировки 1 | Page 7

Сложность рекурсивных алгоритмов

Простая рекурсия

Напомним, что рекурсивными процедурами называются процедуры, которые вызывают сами себя. Их сложность определить довольно тяжело. Сложность этих алгоритмов зависит не только от сложности внутренних циклов, но и от количества итераций рекурсии. Рекурсивная процедура может выглядеть достаточно простой, но она может серьёзно усложнить программу, многократно вызывая себя.

Рассмотрим рекурсивную реализацию вычисления факториала:

function Factorial(n: Word): integer;

begin

if n > 1 then

Factorial:=n*Factorial(n-1)

else

Factorial:=1;

end;

Эта процедура выполняется N раз, таким образом, вычислительная сложность этого алгоритма равна O(N).