21.01.2013, 15:57
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
kobezzza, еще раз повторюсь... Если задачка раскладывается на конечное число циклов и этого хватает для решения проблемы в общем виде - это не "рекурсивная задачка".
Если её кто-то решеет рекурсивно - это его проблема и ответственность.
|
|
21.01.2013, 16:03
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
Т.е. есть корень диска... Там есть как файлы, так и папки... В каждой папке могут быть как файлы так и папки.
Сделай это без рекурсии, только циклами.
|
Сделано выше, вместо папок и файлов объекты, а всё остальное тоже самое.
Сообщение от ksa
|
kobezzza, еще раз повторюсь... Если задачка раскладывается на конечное число циклов и этого хватает для решения проблемы в общем виде - это не "рекурсивная задачка".
Если её кто-то решеет рекурсивно - это его проблема и ответственность.
|
Лол, я не знаю какая глубина у входящих объектов и сколько их, и даже, что это за объекты (массивы или простые хеши), но я как то делаю поиск в глубину и сравнение. Почитай что делает движок JS когда вызывает функцию и тогда наверно поймёшь что же такое рекурсия и как она работает и главное: как её описать.
http://ru.wikipedia.org/wiki/%D0%A0%...81%D0%B8%D1%8F
Цитата:
|
Любую рекурсивную функцию можно заменить циклом и стеком.
|
Последний раз редактировалось kobezzza, 21.01.2013 в 16:06.
|
|
21.01.2013, 16:03
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
ksa,
Какой ты упрямый, прям как я . Я часто пишу сначала на рекурсии, а затем переписываю на циклы, т.к.
Сообщение от kobezzza
|
работает значительно шустрее
|
Сообщение от ksa
|
напиши мне цикличный алгоритм подсчета количества файлов в папках.
|
Так и начинается любой холивар. Я не умею это делать, но утверждаю, что это невозможно.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
21.01.2013, 16:08
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
|
|
21.01.2013, 16:10
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Дзен-трансгуманист
|
megaupload,
Приятного аппетита.
|
+
kobezzza, если все "так просто", почему движок не делает это за нас?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
21.01.2013, 16:12
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от nerv_
|
+
kobezzza, если все "так просто", почему движок не делает это за нас?
|
Многие компиляторы умеют это делать, но движки JS пока не научились, т.к. думаю у них пока не доделаны более узкие места и просто вопрос времени.
И ещё как мне кажется проблема в том, что такую оптимизацию легко делать в функциональных языках, т.к. функция никак не может влиять на внешний контекст, а JS как известно процедурный и внутри функции могут спокойно переопределяться внешние и глобальные переменные, одним словом вызов функции с одинаковыми параметрами не гарантирует одинаковый результат, поэтому JIT компилятору JS трудно сделать универсальную замену (от сюда кстати также растут проблемы с инлайнингом функции).
Последний раз редактировалось kobezzza, 21.01.2013 в 16:25.
|
|
21.01.2013, 16:23
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от kobezzza
|
Сделано выше, вместо папок и файлов объекты, а всё остальное тоже самое.
|
Вынужден согласиться...
Сам так же уже придумал как с папками разобраться в один цикл, но с 2-мя табличками...
Сообщение от Gozar
|
Какой ты упрямый, прям как я
|
Что есть - то есть.
Просто в моём случае все делается с базами данных и там я не получу никакого ускорения с другим подходом... Т.к. меня начнут тормозить операции с данными в таблицах. Поскольку одной оперативной памятью там не обойдешся...
От этого и "плясал".
Сообщение от Gozar
|
Я не умею это делать, но утверждаю, что это невозможно.
|
Наверно таки не "утверждал"... Более хотел разобраться. Поскольку интерес был устойчивым.
И естественно много приобрёл благодаря вам. Поскольку просто с задачками "из опереативной памяти" дело имел мало...
|
|
21.01.2013, 16:35
|
|
Профессор
|
|
Регистрация: 18.01.2013
Сообщений: 1,098
|
|
Все идет по плану; Нубы вновь схлеснулись с отцами в поисках установления истины любую ли рекурсию можно заменить циклом?
Ответ конечно очевиден - любую, ибо вызов функций javascript это и есть цикл выполнения синтаксического дерева; Но нубы то этого не знают; Ееееекселент;
Сообщение от Дзен-трансгуманист
|
Приятного аппетита.
|
спасибо)
ksa,
ой кому-то припекло))
kobezzza,
красава) все верно описал)
Последний раз редактировалось megaupload, 21.01.2013 в 16:40.
|
|
21.01.2013, 16:41
|
|
Профессор
|
|
Регистрация: 18.01.2013
Сообщений: 1,098
|
|
Пасоны, напишИте регулярку для разворачивания рекурсии в цикл)
|
|
21.01.2013, 16:53
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от megaupload
|
ой кому-то припекло))
|
В каком смысле?
Диспут или обсуждение какой-либо проблемы - обычное дело.
|
|
|
|