![]() 12 / 11 / 3
Регистрация: 12.10.2010
Сообщений: 268
|
|
Цикл vs рекурсия: достоинства и недостатки17.10.2010, 15:46. Показов 4512. Ответов 14
Метки нет Все метки)
(
0
|
17.10.2010, 15:46 | |
Ответы с готовыми решениями:
14
[Windows Phone] Достоинства и недостатки Windows Zver. Достоинства и недостатки Достоинства и недостатки двух гигантов |
![]() |
|
17.10.2010, 16:11 | |
Недостатки?...Боюсь для цикла таковых нету(....
А достоинства цикла в том, что допустим тебе надо вывести массив в котором 300 значений!..Для этого тебе надо написать 300 строчек! Для этого придуманы циклы он помогает избавиться от нужды писать для этого примера те же самые 300 строчек... Есть циклы For To/DownTo Синтаксис For <переменная_ЦЕЛЫЙ_ТИП>:=<Начальное_значе ние> To/DownTo <конечное_значение> Do Begin ... End; Есть с предусловием и постусловием Хотя я думаю тебе не надо это) Но если надо расскажу)) Рекурсия...Мм...Плюсы ее можно расписывать долго)) Ей посвящена целая глава в любой книге по программированию) Главный минус в том, что все происходит очень долгО! Плюс в том, что позволяет выполнять легко задачи рекурентных формул и алгоритмов!... ТАк же может привезти к тому, что процесс рекурссии будет неуправляем...НУ и т.д.) Могу предложить на примере тебе рассмотреть метод быстрой сортировки "QuickSort" Там все поймешь) Плюсы ее)...Плюсы рекурсии в смысле)
0
|
![]() |
|
17.10.2010, 17:00 | |
Понимаешь, что рекурсия и циклы они совершенно различны!! Подобие только в том, что рекурсия как бы зацикливается....Но в то же время выполняет более большие задачи нежели циклы...
К сожалению авторов не помню Но вот нашел в интернете...Там идет более менее хорошее описание
0
|
![]() 161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
|
|
18.10.2010, 13:08 | |
tipo4ek, увидеть отличие ты не сможеш, там отличается смысл выполнения
Если вкратце то: Цикл - выполняет определенное к-во подпрограмму. А Рекурсия - это процедура или функция которая вызывает саму себя до окончания перебора ![]() Уже более подробно нужно читать книги. Лучшие книги по программированию вне зависимости от языка это сборники Кнута. В инете их валом, поищи. Но они малость тяжеловаты для восприятия, хотя после них если крыша не съехала сможеш программировать на любом языке, поняв его семантику.
0
|
![]() 4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
18.10.2010, 13:19 | |
сравнить надо не с рекурсией.
Добавлено через 1 минуту Не намного дольше, чем циклом, но память переполняется быстро, особенно, если аргумент - матрица. Добавлено через 2 минуты Любая рекурсия всё равно при исполнении превращается в цикл, да ещё и в двойной (но полезным является только обратный). Поэтому и заменить рекурсию циклом можно всегда. Но не всегда целесообразна такая замена. А вот наоборот может и не получиться. Добавлено через 3 минуты На этапе исполнения любая рекурсия превращается в цикл, так что это утверждение не верно. Но если задача рекурсивна по смыслу, то её проще решить рекурсией, чем явным циклом. Например, таковы все задачи по обработке деревьев.
0
|
![]() 420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
|
|
18.10.2010, 16:34 | |
Всё в этом плане до невозможности наоборот ИМХО. Я тебе с легкостью заменю люой цикл рекурсией, а вот рекурсию я так легко обратно в цикл не превращу (а может и вообще не получится).
в том то и дело что в цикл (явный цикл) рекурсия не превращается, а на пальцах объяснить не получится...
0
|
![]() 267 / 258 / 47
Регистрация: 08.10.2009
Сообщений: 554
|
|
18.10.2010, 20:15 | |
рекурсия проще и яснее некуда
1
|
![]() 420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
|
|
18.10.2010, 20:33 | |
tipo4ek, в принципе есть заменяемость, как я уже писал выше, любой цикл можно !легко! представить в виде рекурсии, но вот не всякую рекурсию можно так же легко представить циклом. Почему - вопрос посложнее, но я думаю со мной согласятся, что поскольку нужны эти две вещи дра разных целей (по структуре), но одного смылсла (перебора), именно поэтому они в принципе могут быть заменены друг другом.
В любом случае я считаю что познакомится с работой этих вещей хорошо моэно только на практике...
0
|
![]() 420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
|
|
18.10.2010, 21:52 | |
рекурсия есстесвено более ресурсоемкая, ибо стек он не бесконечен, поэтому мой совет: где можно заменить рекурсию на цикл (т.е. это не будет геморойно), заменяйте!
PS в этом отношении цикл лучше, но для решения рекурсивных задач нужна рекурсия, и никуда тут не дется...
0
|
18.10.2010, 21:52 | ||||||
Помогаю со студенческими работами здесь
15
Достоинства и недостатки итерационных методов Достоинства и недостатки SHA-256
Достоинства и недостатки серверных языков Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть.
Дело в том, что я. . .
|
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
|
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
|
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
|
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
|
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
|
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
|
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
|
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
|
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
|