Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 21.01.2013, 15:57
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

kobezzza, еще раз повторюсь... Если задачка раскладывается на конечное число циклов и этого хватает для решения проблемы в общем виде - это не "рекурсивная задачка".
Если её кто-то решеет рекурсивно - это его проблема и ответственность.
Ответить с цитированием
  #22 (permalink)  
Старый 21.01.2013, 16:03
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
Т.е. есть корень диска... Там есть как файлы, так и папки... В каждой папке могут быть как файлы так и папки.
Сделай это без рекурсии, только циклами.
Сделано выше, вместо папок и файлов объекты, а всё остальное тоже самое.

Сообщение от ksa Посмотреть сообщение
kobezzza, еще раз повторюсь... Если задачка раскладывается на конечное число циклов и этого хватает для решения проблемы в общем виде - это не "рекурсивная задачка".
Если её кто-то решеет рекурсивно - это его проблема и ответственность.
Лол, я не знаю какая глубина у входящих объектов и сколько их, и даже, что это за объекты (массивы или простые хеши), но я как то делаю поиск в глубину и сравнение. Почитай что делает движок JS когда вызывает функцию и тогда наверно поймёшь что же такое рекурсия и как она работает и главное: как её описать.

http://ru.wikipedia.org/wiki/%D0%A0%...81%D0%B8%D1%8F
Цитата:
Любую рекурсивную функцию можно заменить циклом и стеком.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 21.01.2013 в 16:06.
Ответить с цитированием
  #23 (permalink)  
Старый 21.01.2013, 16:03
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

ksa,
Какой ты упрямый, прям как я . Я часто пишу сначала на рекурсии, а затем переписываю на циклы, т.к.
Сообщение от kobezzza
работает значительно шустрее


Сообщение от ksa
напиши мне цикличный алгоритм подсчета количества файлов в папках.
Так и начинается любой холивар. Я не умею это делать, но утверждаю, что это невозможно.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #24 (permalink)  
Старый 21.01.2013, 16:08
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Gozar Посмотреть сообщение
Так и начинается любой холивар. Я не умею это делать, но утверждаю, что это невозможно.
Вот-вот
__________________
kobezzza
code monkey
Ответить с цитированием
  #25 (permalink)  
Старый 21.01.2013, 16:10
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Дзен-трансгуманист
megaupload,
Приятного аппетита.
+

kobezzza, если все "так просто", почему движок не делает это за нас?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #26 (permalink)  
Старый 21.01.2013, 16:12
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от nerv_ Посмотреть сообщение
+

kobezzza, если все "так просто", почему движок не делает это за нас?
Многие компиляторы умеют это делать, но движки JS пока не научились, т.к. думаю у них пока не доделаны более узкие места и просто вопрос времени.

И ещё как мне кажется проблема в том, что такую оптимизацию легко делать в функциональных языках, т.к. функция никак не может влиять на внешний контекст, а JS как известно процедурный и внутри функции могут спокойно переопределяться внешние и глобальные переменные, одним словом вызов функции с одинаковыми параметрами не гарантирует одинаковый результат, поэтому JIT компилятору JS трудно сделать универсальную замену (от сюда кстати также растут проблемы с инлайнингом функции).
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 21.01.2013 в 16:25.
Ответить с цитированием
  #27 (permalink)  
Старый 21.01.2013, 16:23
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от kobezzza
Сделано выше, вместо папок и файлов объекты, а всё остальное тоже самое.
Вынужден согласиться...
Сам так же уже придумал как с папками разобраться в один цикл, но с 2-мя табличками...

Сообщение от Gozar
Какой ты упрямый, прям как я
Что есть - то есть.

Просто в моём случае все делается с базами данных и там я не получу никакого ускорения с другим подходом... Т.к. меня начнут тормозить операции с данными в таблицах. Поскольку одной оперативной памятью там не обойдешся...
От этого и "плясал".

Сообщение от Gozar
Я не умею это делать, но утверждаю, что это невозможно.
Наверно таки не "утверждал"... Более хотел разобраться. Поскольку интерес был устойчивым.
И естественно много приобрёл благодаря вам. Поскольку просто с задачками "из опереативной памяти" дело имел мало...
Ответить с цитированием
  #28 (permalink)  
Старый 21.01.2013, 16:35
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

Все идет по плану; Нубы вновь схлеснулись с отцами в поисках установления истины любую ли рекурсию можно заменить циклом?

Ответ конечно очевиден - любую, ибо вызов функций javascript это и есть цикл выполнения синтаксического дерева; Но нубы то этого не знают; Ееееекселент;

Сообщение от Дзен-трансгуманист
Приятного аппетита.
спасибо)

ksa,
ой кому-то припекло))

kobezzza,
красава) все верно описал)

Последний раз редактировалось megaupload, 21.01.2013 в 16:40.
Ответить с цитированием
  #29 (permalink)  
Старый 21.01.2013, 16:41
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

Пасоны, напишИте регулярку для разворачивания рекурсии в цикл)
Ответить с цитированием
  #30 (permalink)  
Старый 21.01.2013, 16:53
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от megaupload
ой кому-то припекло))
В каком смысле?
Диспут или обсуждение какой-либо проблемы - обычное дело.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по replace. Как заменить все точки в строке? Pluto Общие вопросы Javascript 14 21.04.2017 12:32
Как изменять имена переменных циклом Ivan Draga Общие вопросы Javascript 5 21.01.2011 08:46
Как заменить встроенную функцию Alert? KIVagant Общие вопросы Javascript 4 22.04.2010 11:13
DOM vs iframe. Как в ифрейме заменить выделенный текст (его innerHTML)? Бухалыч Events/DOM/Window 4 20.08.2009 14:30
Как заменить эл-ты одного списка эл-тами другого ? Mayar Элементы интерфейса 5 28.04.2009 11:21