Рекурсивная функция определяется как так:Выполняют ли обе эти факториальные функции в O (n)?
function factrec($x) {
if($x <= 1) {
return $x;
} else {
return $x * factrec($x - 1);
}
}
И итерационный здесь:
function factiter($x) {
$y = $x;
while($y > 1) {
$x *= ($y - 1);
$y--;
}
return $x;
}
Я прочитал, что на рекурсивной функции тело O (1) и рекурсивные вызовы O (n- 1) делает его O (n), но для итеративного это O (n) также?
'function factorial ($ x) {for ($ y = $ x; $ y--> 1; $ x * = $ y); return $ x; } ': PHP так хорош. (Надеюсь, я не ошибся: D) – NikiC
'! 0 = 1' (не' 0') –