|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Andrey Tarasevich 2:5020/400 25 Oct 2001 02:11:29 To : Rustam Gadeyev Subject : Re: 8 мирных ферзей --------------------------------------------------------------------------------
Rustam Gadeyev wrote:
>
> RG>> Рекурсия всегда короче, но не быстрее.
> ES> Точнее - не всегда быстрее ;). Здесь же была идея сделать две
> ES> процедуры для учета повторяющихся комбинаций, но она не сработала ;(.
> У рекурсии принципиально есть накладные расходы на стек, хотя бы на адрес
> возврата. Так что в общем случае рекурсия тормознее.
Если алгоритм от природы рекурсивен, то расходы на стек будут в любом
случае, и у явно рекурсивной реализации, и у псевдо-циклической
реализации. Причем у явной рекурсии расходы на стек в общем случае будут
_существенно_ _меньше_. Так что собственным расходом в рекурсии якляется
только расход на собственно голый вызов (call) и возврат (ret) из
функции, по сравнению с переходом в цикле (jmp). Это немного.
Hадо еще иметь в виду, что многие компиляторы умеют заменять замыкающий
'call' на тот же 'jmp'. В том числе и в рекурсивных функциях.
Best regards,
Андрей.
--- ifmail v.2.15dev5
* Origin: good enough (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/6682a5d3305c.html, оценка из 5, голосов 10
|