![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#11 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
![]() |
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
стек вообще то не определяется всей свободной памятью.
тем более вы уверены что рекурсия здесь необходима? может стоит просто цикл применить? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#14 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
![]()
Если текст будет порядка нескольких мегабайт, с огромным количеством тегов, то вы представляете сколько раз нужно будет вызвать подпрограмму? А сколько будет лишних операций со стеком? Алгоритмы, в которых применена рекурсия, обычно работают намного медленнее их безрекурсионных аналогов. Причем это бывает критично. Вообще, советовал бы не использовать рекурсии без необходимости. Про принцип KISS не стоит забывать.
pushl $0x18E3DF6B
call ICQ |
![]() |
![]() |
![]() |
#15 | ||
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
![]() Цитата:
Можно и цикл конечно же, тут больше дело вкуса, но так же, при помощи рекурсии можно легко и быстрее программировать довольно сложные алгоритмы (не все конечно) Цитата:
У рекурсивного и не рекурсивного решения свои плюсы и минусы, каждые для различных целях хороши.. Но конкретно я бы наверное все же рекурсивно эту задачу решал. PS: к примеру если есть некоторая 2х мерная матрица (маска для изображения) и необходимо выделить из нее все закрытые контуры из единичек, то рекурсивно тут все довольно просто, а вот через цикл, даже не представляю насколько будет огромный алгоритм с множеством условий... А в некоторых языках программирования вообще отсутствуют циклы, рекурсия там это единственных выход (для чего тогда создатели так извратились, если рекурсия настолько плоха??) |
||
![]() |
![]() |
![]() |
#16 |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
![]()
Смотря как еще использовать рекурсию. Если создавать из строки подстраку из под подстраки подподстроку из подподстроки подподподстроку и тд... то это очень много памяти будет сжирать.
А вот есть не создавать подстрок, а создавать только указатели на начало и конец подстроки и передавать их в рекурсивные алгоритмы, то всё будет хорошо без расходов лишней памяти. |
![]() |
![]() |
![]() |
#17 | |
Форумчанин
Регистрация: 28.02.2011
Сообщений: 127
|
![]() Цитата:
Но у меня в алгоритме всё равно нет рекурсии, потому что, при больших объёмах текста, это, ИМХО всё же будет медленнее чем цикл |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
mail.ru parser | SAMY93 | Работа с сетью в Delphi | 7 | 09.08.2010 12:53 |
php2xls com parser | crazy horse | PHP | 0 | 08.10.2009 09:02 |
HTML Parser на Delphi 2009 | Rubaka | Работа с сетью в Delphi | 3 | 11.08.2009 08:35 |