Рекурсия и стек |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2021-05-27 16:56 Всем доброго дня. В качестве небольшого предисловия к следующей работе по поиску данных, хотим сказать пару слов о таком интересном понятии как РЕКУРСИЯ. Оно знакомо тем, кто хоть немного разбирается в программировании. Для всех остальных краткий ликбез) ИТАК, РЕКУРСИЯ ПРОСТЫМИ СЛОВАМИ... Аналогичный запрос к Google выдал нам определение… Простыми словами, рекурсия – определение части функции (метода) через саму себя, то есть это функция, которая вызывает саму себя, непосредственно (в своём теле) или косвенно (через другую функцию). Фильтруем много слов и выделяем главное – функция вызывает саму себя. Для чего можно использовать такой прием? В первую очередь для упрощения понимания кода. Сложная задача разбивается на несколько аналогичных, но более простых или упрощается до несложных действий в дополнение к такому простому варианту. Для продолжения разговора обозначим терминологию: Глубина рекурсии – общее количество вложенных вызовов (включая первый). База рекурсии – элементарная задача (аргумент), для нее решение определено. Шаг рекурсии – способ сведения задачи к более простым. Каждый шаг рекурсии – это шаг к ее базе. Надо иметь в виду, что рекурсивный код может быть заменен на более сложный и менее понятный итеративный. Такой вариант реализуется, если требуется оптимизировать выполнение задачи. Для того чтобы понять как работают такие рекурсивные функции введём еще одно понятие. Контекст выполнения – специальная внутренняя структура данных, которая содержит информацию о вызове функции. Она включает в себя конкретное место в коде, на котором находится интерпретатор, локальные переменные функции, значение this и прочую служебную информацию. Одному вызову функции соответствует один контекст выполнения. Итак, что происходит когда функция производит вложенный вызов: Выполнение текущей функции приостанавливается. Контекст выполнения, связанный с ней, запоминается в специальной структуре данных – стеке контекстов выполнения. Выполняются вложенные вызовы, для каждого из которых создаётся свой контекст выполнения. После их завершения старый контекст достаётся из стека, и выполнение внешней функции возобновляется с того места, где она была остановлена. В изображениях к посту приведен небольшой пример в виде: формулировки задачи, алгоритма, описания и программной реализации При написании этого поста мы использовали материалы статьи на сайте Современного учебника по JavaScript по ссылке ниже Источник: learn.javascript.ru Комментарии: |
|