
Ускорь свой код в миллион раз - рекурсия - алгоритмы
содержание видео
Дата: 2023-03-12
Комментарии и отзывы: 19
Kostya
Привет Алекс, хорошее видео, отлично обьяснили как работает рекурсия под капотом, только я так и не понял как именно рекурсия ускоряет код хотя бы 2 раза. Почему та же функция полинтрома будет бежать быстрее через рекурсию, чем через обычный фор и в чем преимущество рекурсии? Название видео ускорь код в миллион раз, но как например та же рекурсия по матрице будет бежать быстрее чем 2 фора. Наверное я что-то упустил, пожалуйста, если не сложно, приведите пример когда рекурсия будет работать гораздо быстрее другого хорошо написаного кода через for и while с теми же ifами. Как имеено рекурсия ускорит мой код хотя бы в 2 раза по сравнению с нормально написаным итеративным алгоритмом? И если вдруг не ускорит, то в чем заключается преимущество рекурсии(считая что определенные минусы в ней есть, кроме того что зачастую она менее интуитивно понятна) Большое спасибо, надеюсь получить ответ и жду следующего видео!
ответить
Привет Алекс, хорошее видео, отлично обьяснили как работает рекурсия под капотом, только я так и не понял как именно рекурсия ускоряет код хотя бы 2 раза. Почему та же функция полинтрома будет бежать быстрее через рекурсию, чем через обычный фор и в чем преимущество рекурсии? Название видео ускорь код в миллион раз, но как например та же рекурсия по матрице будет бежать быстрее чем 2 фора. Наверное я что-то упустил, пожалуйста, если не сложно, приведите пример когда рекурсия будет работать гораздо быстрее другого хорошо написаного кода через for и while с теми же ifами. Как имеено рекурсия ускорит мой код хотя бы в 2 раза по сравнению с нормально написаным итеративным алгоритмом? И если вдруг не ускорит, то в чем заключается преимущество рекурсии(считая что определенные минусы в ней есть, кроме того что зачастую она менее интуитивно понятна) Большое спасибо, надеюсь получить ответ и жду следующего видео!
ответить
Serhii
Python даже ниже PHP о чем тут речь? Норм зп на Python только в Канаде по нейросетям и там гениев берут а не обычных людей фронтендеров! Если учить программирование то точно не Python! Если вас фронтенд больше интересует то реакт ваше все. Это и самые высокие зп в СНГ и кучу вакансий. По бекенду конечно же java и c# и ни чего другого там нет не выдумуйте. На пайтон пишется ровно то что и на пыхе - то есть инет магазы и сайты-обложки за 1000рублей стоимости. Это работа на равне с копирайтерами. Работы будет оооочень много, работа вся однообразная и зп самые низкие в мире в сфере IT.
ответить
Python даже ниже PHP о чем тут речь? Норм зп на Python только в Канаде по нейросетям и там гениев берут а не обычных людей фронтендеров! Если учить программирование то точно не Python! Если вас фронтенд больше интересует то реакт ваше все. Это и самые высокие зп в СНГ и кучу вакансий. По бекенду конечно же java и c# и ни чего другого там нет не выдумуйте. На пайтон пишется ровно то что и на пыхе - то есть инет магазы и сайты-обложки за 1000рублей стоимости. Это работа на равне с копирайтерами. Работы будет оооочень много, работа вся однообразная и зп самые низкие в мире в сфере IT.
ответить
Иван
Ничего из представленного в видео, кроме обхода дерева, не ускоряет ваш код код, а наоборот замедляет. Да, рекурсия описана очень хорошо, но она обычно используется для обхода деревьев, графов и некоторых других задач. Была в практике у меня еще задача для нахождения определителя матрицы, и очень хороший способ решения был через рекурсию. В остальном все задачи решаются итеративным методом намного быстрее чем рекурсивный.
ответить
Ничего из представленного в видео, кроме обхода дерева, не ускоряет ваш код код, а наоборот замедляет. Да, рекурсия описана очень хорошо, но она обычно используется для обхода деревьев, графов и некоторых других задач. Была в практике у меня еще задача для нахождения определителя матрицы, и очень хороший способ решения был через рекурсию. В остальном все задачи решаются итеративным методом намного быстрее чем рекурсивный.
ответить
Юрий
20: 20 на видео: А разве при объявлении кэша таким образом (без инициализации) не выйдет опасность наличия мусора в массиве? Просто я когда в школе участвовал в олимпиаде по программированию, мне снизили баллы за задачу, сказав, что переменные при объявлении обнуляются только в Windows-системах, а в Unix-системах у них неопределенное поведение и надо инициализировать.
ответить
20: 20 на видео: А разве при объявлении кэша таким образом (без инициализации) не выйдет опасность наличия мусора в массиве? Просто я когда в школе участвовал в олимпиаде по программированию, мне снизили баллы за задачу, сказав, что переменные при объявлении обнуляются только в Windows-системах, а в Unix-системах у них неопределенное поведение и надо инициализировать.
ответить
Михаил
Запоминание уже просчитанных вариантов - по-моему, это используется в машинах, которые играют в шахматы. Там комбинации фигур на доске, для которых уже был просчитан лучший вариант хода, хранятся в виде хеша, и, если машина видит уже знакомое расположение фигур, то не просчитывает возможные ходы заново, а достаёт готовый из памяти.
ответить
Запоминание уже просчитанных вариантов - по-моему, это используется в машинах, которые играют в шахматы. Там комбинации фигур на доске, для которых уже был просчитан лучший вариант хода, хранятся в виде хеша, и, если машина видит уже знакомое расположение фигур, то не просчитывает возможные ходы заново, а достаёт готовый из памяти.
ответить
Илья
Правильно, используй везде рекурсию вместо циклов. Засри стек и сожри всю память. Единственное, где без неё действительно не обойтись - обход дерева. Но благодаря сектантам из функционального программирования рекурсию стали совать во все дыры. Зачем? Показать какой ты умный и какой брейнфак-код можешь писать?
ответить
Правильно, используй везде рекурсию вместо циклов. Засри стек и сожри всю память. Единственное, где без неё действительно не обойтись - обход дерева. Но благодаря сектантам из функционального программирования рекурсию стали совать во все дыры. Зачем? Показать какой ты умный и какой брейнфак-код можешь писать?
ответить
Viktor
Огромное спасибо за видео, теперь гораздо лучше понимаю рекурсию. Отдельное спасибо за то, что в конце показал способ создания псевдо рекурсии. Решая задачки на литкоде часто видел, как используют стек со специально созданным типом и циклом while(stack. size > 0, и теперь понимаю что это такое
ответить
Огромное спасибо за видео, теперь гораздо лучше понимаю рекурсию. Отдельное спасибо за то, что в конце показал способ создания псевдо рекурсии. Решая задачки на литкоде часто видел, как используют стек со специально созданным типом и циклом while(stack. size > 0, и теперь понимаю что это такое
ответить
Сергей
Забавно, автор переалгорировал и начал обучать в стиле Memoization) от сложного к легкому) В общем объясняете вы толково, но ведь рекурсию начинают преподавать и познавать обычно ПОСЛЕ циклов, поэтому и используют циклы гораздо активнее. В общем видео хорошее, но это как фильм Довод.
ответить
Забавно, автор переалгорировал и начал обучать в стиле Memoization) от сложного к легкому) В общем объясняете вы толково, но ведь рекурсию начинают преподавать и познавать обычно ПОСЛЕ циклов, поэтому и используют циклы гораздо активнее. В общем видео хорошее, но это как фильм Довод.
ответить
GLaster
Коротко: стек переполняется при глубоких вызовах рекурсии, код быстро замедляется (с 5 колена и выше. Решение: сделать без вызова рекурсии или если не возможно то с помощью самопального класса, который будет хранить то, что было бы в стеке. А классы как известно хранятся в куче.
ответить
Коротко: стек переполняется при глубоких вызовах рекурсии, код быстро замедляется (с 5 колена и выше. Решение: сделать без вызова рекурсии или если не возможно то с помощью самопального класса, который будет хранить то, что было бы в стеке. А классы как известно хранятся в куче.
ответить
Salvador
Обожаю рекурсию в функциональных языках, это даже выглядит красиво. Но в императивных языках рекурсия противопозаказана.
Не понимаю почему не делают аппаратную рекурсию, ее можно ускорить на порядки. На GPU при dx12 подобная есть, она напрямую копирует содержимое регистров.
ответить
Обожаю рекурсию в функциональных языках, это даже выглядит красиво. Но в императивных языках рекурсия противопозаказана.
Не понимаю почему не делают аппаратную рекурсию, ее можно ускорить на порядки. На GPU при dx12 подобная есть, она напрямую копирует содержимое регистров.
ответить
ALEKS
Не понятно. Стек - абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO. У тебя в видео - это стек вызова функции (метода. Не давая конкретного определения, ты водишь в заблуждение не знающих, и вызываешь раздражение у знающих. ИМХО.
ответить
Не понятно. Стек - абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO. У тебя в видео - это стек вызова функции (метода. Не давая конкретного определения, ты водишь в заблуждение не знающих, и вызываешь раздражение у знающих. ИМХО.
ответить
Qqpdh
Здравствуйте! Сделайте пожалуйста видео о криптографии основах, как шифруется, как передается данные. Думаю многим было бы интересно.
Да безусловно есть видео о криптографии, но именно ваша подача информации дала бы понять эту тему многим
ответить
Здравствуйте! Сделайте пожалуйста видео о криптографии основах, как шифруется, как передается данные. Думаю многим было бы интересно.
Да безусловно есть видео о криптографии, но именно ваша подача информации дала бы понять эту тему многим
ответить
Дмитрий
5: 38 определение стекового кадра отличился от того, что было дано в виде про стек, там стековым кадром называлась область в стеке где хранятся только локальные переменные! Что не верно, в этом видео правильное определение.
ответить
5: 38 определение стекового кадра отличился от того, что было дано в виде про стек, там стековым кадром называлась область в стеке где хранятся только локальные переменные! Что не верно, в этом видео правильное определение.
ответить
Павел
Ну что то загнули, миллионы лет в секунду уложить. Между рекурсивным и итерационным способом разница то не велика, инструкций меньше, а памяти потребляет больше. Где то рекурсии выгодны, например в сортировках, где то нет.
ответить
Ну что то загнули, миллионы лет в секунду уложить. Между рекурсивным и итерационным способом разница то не велика, инструкций меньше, а памяти потребляет больше. Где то рекурсии выгодны, например в сортировках, где то нет.
ответить
Сергей
Привет! Вот вы рекламируете скилфактори, а сами вы где учились? И возможно ли на подобных курсах чему-то научиться? Хотелось бы больше конкретики, а не только бабло влупить в пустоту. Там ведь не хило курс стоит!
ответить
Привет! Вот вы рекламируете скилфактори, а сами вы где учились? И возможно ли на подобных курсах чему-то научиться? Хотелось бы больше конкретики, а не только бабло влупить в пустоту. Там ведь не хило курс стоит!
ответить
Тимофей
Странный пример, что для обхода дерева нельзя использовать итеративный алгоритм, есть множество других алгоритмов, позволяющих сделать это, например bfs, который позволяет сделать тоже самое)
ответить
Странный пример, что для обхода дерева нельзя использовать итеративный алгоритм, есть множество других алгоритмов, позволяющих сделать это, например bfs, который позволяет сделать тоже самое)
ответить
Shiko
Обьясните, для чего тогда используются рекурсии, если они безумно медленные? Конечно хочется их освоить, но я изначально начал программировать интерактивным подходом, который в разы быстрее хД
ответить
Обьясните, для чего тогда используются рекурсии, если они безумно медленные? Конечно хочется их освоить, но я изначально начал программировать интерактивным подходом, который в разы быстрее хД
ответить
James
Самый главный урок, который получит каждый это то, что рекурсия является сложным и слишком затратным методом.
Тот же проход по всем итерациям только выполненный через одно место
ответить
Самый главный урок, который получит каждый это то, что рекурсия является сложным и слишком затратным методом.
Тот же проход по всем итерациям только выполненный через одно место
ответить
ProgMiner
Учитывая степень погружения в материал в видео, здесь нехватает небольшой ремарки о том, что не все языки программирования используют стек для рекурсивных функций (Haskell, и т. п)
ответить
Учитывая степень погружения в материал в видео, здесь нехватает небольшой ремарки о том, что не все языки программирования используют стек для рекурсивных функций (Haskell, и т. п)
ответить
Добавить отзыв, комментарий















