Рекурсия: косвенная и хвостовая, стек, выход

Поділитися
Вставка
  • Опубліковано 15 лис 2024

КОМЕНТАРІ • 24

  • @anatolykobzisty9827
    @anatolykobzisty9827 4 роки тому +20

    00:00 Рекурсивная функция для вычисления глубины стека
    03:25 Неявная рекурсия
    04:52 Рекурсивная функция для вычисления степени числа
    06:12 Рекурсивная функция для вычисления факториала
    06:29 Рекурсивная функция для вычисления числа Фибоначчи
    09:27 Рекурсивная функция, как аналог функции reduce
    12:04 Оптимизация хвостовой рекурсии
    15:41 Оптимизация обычной рекурсивной функции

  • @TimurSevimli
    @TimurSevimli Рік тому +3

    Спасибо вам Тимур Гафарович, лекция было очень полезная!

  • @DimitarRad
    @DimitarRad 2 роки тому +4

    Спасибо. Надеюсь, дальше по курсу будет больше пример с рекурсией, а то этими фибиначи весь интернет забил. Хотелось бы что-то из реальный случаев.

  • @TimaGixe
    @TimaGixe Рік тому +1

    Чудова лекція, дякую!

  • @sevgenberg585
    @sevgenberg585 5 років тому +7

    Супер!Можно еще организовать одну лекцию по сетевым протоколам?

  • @vitaliikukhar4864
    @vitaliikukhar4864 5 років тому +16

    Для того чтобы понять рекурсию, надо сначала понять рекурсию :-)

    • @sevgenberg585
      @sevgenberg585 5 років тому +1

      рекурсия она конечно запутанная вещь, почему рекурсия медленнее цикла?Может кто то знает?Объясните пожалуйста...

    • @gravityarm9240
      @gravityarm9240 5 років тому

      @@sevgenberg585 chrome dev tools подивись там все ясно

    • @RisDeep
      @RisDeep 4 роки тому

      @@sevgenberg585 замыкание

    • @vladyslavkarpenko9372
      @vladyslavkarpenko9372 Рік тому

      ​@@sevgenberg585 Кожен виклик функції у виконання відбувається на наступному колі event loop. Тобто між викликами можуть асинхронно виконуватись callback таймерів, проміси та інше асинхронне. Причому це не стабільно, бо асинхронний код може бути присутнім, а може й ні. Тобто примітивне випробування може демонструвати малу різницю, а в дійсно робочому коді буде інша ситуація. Цикл виконується синхронно на одній ітерації event loop, тож ніхто не може "перервати" і очікуваний час виконання стає більш передбачуваний.
      Разом з тим існує зворотнє завдання: допустима повільніша рекурсія, але критично важливо віддавати кванти часу процессора на асинхронне виконання. В такому разі можна казати про ще один умовний вид - "сповільнена рекурсія". Це коли кожен наступний рекурсивний виклик виконується через відкладене планування з певним таймером (setTimeout, nextTick etc).

    • @sevgenberg585
      @sevgenberg585 Рік тому

      @@vladyslavkarpenko9372 Maybe I need to specify:
      У меня есть рекурсивный список элементов с неизвестной глубиной.Каждый элемент имеет активное свойство. Я хочу создать метод, который возвращает true, когда активное свойство любых дочерних элементов или дочерних элементов элемента истинно. ChildStack можно использовать как замену рекурсии?

  • @dmitrijponkin
    @dmitrijponkin 5 років тому +3

    Спасибо Вам!!!

  • @jamjam3337
    @jamjam3337 Рік тому

    👏👍

  • @antonanton22743
    @antonanton22743 5 років тому +1

    Спасибо !

  • @TimurSevimli
    @TimurSevimli Рік тому

    Не полностью разобрался что происходит в примерах функции fibonacci и fibonacci1. Что там суммируется и каком образом конечное получаемое значение это число, если функция возвращает само себя а не какое то там число? Там единственный число это аргументы, потому думаю что суммируются аргументы. А где они тогда сохраняются и передаются для следующего вызова ? А еще интересно то, что каким образом возвращается суммированное значение например как 377, если у нас только 1 условии с двумя вариантами (возвращать 1 или рекурсивно вызывать) которых не какой из них не говорить о том что надо вернуть все суммирование значение. На счет рекурсии и его смысл понятен, а на счет логику работы этих функции не могу полностью усвоить.

  • @NVsquare
    @NVsquare 5 років тому +1

    💻💻💻😍😍😍😍

  • @antonyanovskyi6762
    @antonyanovskyi6762 2 роки тому

    Хорошо конечно.
    Но вот примеров для работы с объектами не хватает

    • @TimurShemsedinov
      @TimurShemsedinov  2 роки тому

      Непонятно, при чем тут объекты?

  • @IvanKuznecov-n6v
    @IvanKuznecov-n6v 5 років тому +1

  • @SM-xp8tw
    @SM-xp8tw Рік тому

    Никогда не понимал, почему опытные программисты, как правило из СНГ, часто бывают безграмотны в Английском языке ?)) ну что за ретурн?)) неужели так сложно подучить язык чтобы не каверкать его подобным произношением ))

    • @TimurShemsedinov
      @TimurShemsedinov  Рік тому

      Это не английский язык, это программистский сленг, я на английском лекции читаю, вообще-то

  • @TheTexPro
    @TheTexPro 2 роки тому +1

    Спасибо большое!

  • @Antonio-fm1sq
    @Antonio-fm1sq 3 роки тому +1

    Спасибо!