7 простых идей и подходов из теории алгоритмов

Поділитися
Вставка
  • Опубліковано 12 жов 2021
  • #soer #itubeteam
    Основной канал для общения и публикации новых видео - Телегарм - t.me/softwareengineervlog
    Спонсорство - donate.s0er.ru
    Сайт платным контентом - soer.pro
    Зеркало для видео Дзен Видео - zen.yandex.ru/id/5f578bdf22e2...
    GitHub - github.com/soerdev
    Чат для программистов - / discord
    Группа ВК - codeartblog

КОМЕНТАРІ • 80

  • @kselnaag2482
    @kselnaag2482 2 роки тому +77

    Рекурсия, мемоизация, динамическое программирование, жадные вычисления, ленивые вычисления - было бы очень интересно услышать от вас разбор этих понятий, в т.ч. применительно к функциональному программированию, желательно на примерах.

    • @antoxatube
      @antoxatube 2 роки тому +11

      желательно на примерах js :)

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

      поддерживаю

    • @user-rq6tm5iw2p
      @user-rq6tm5iw2p 2 роки тому +23

      Да, я слышал про мемоизацию. Эти программисты даже на работе не могут отвлечься от мемов

  • @freddyfox1
    @freddyfox1 2 роки тому +19

    Каждый раз когда слышу "Этот канал для тех кто хочет разбиратся в программироании лучше", на душе приятно становится. Спасибо за видео!

  • @VladiqLot
    @VladiqLot 2 роки тому +10

    Ребят! Книга "Грокаем алгоритмы" практически на пальцах (проще просто уж некуда, это не из тех книги, где для описание алгоритмы применяется математическая выкладка на всю страницу) рассказывает про многие темы затронутые в видео. Лучше всего - изучать книгу и реализовать алгоритмы самому на своем языке программирования или любом другом. В самой книге, однако, я лично нашел пару ошибок в самих алгоритмах когда пытался их реализовать на PHP. Дерзайте и удачи.

  • @bdick8136
    @bdick8136 2 роки тому +11

    Годно. Мне нравится формат видео на 20+- минут на этом канале. Для перебора с возвратом еще можно встретить название альфа-бета отсечение. Жадные алгоритмы могут выдавать не оптимальные значения на некоторых типах задач, тут надо внимательно смотреть на свою задачу прежде чем принимать решение об использовании. Разделяй и властвуй хорошо подходит для многопотока, т.к. кэшу удобно, минимум синхронизаций.

  • @Iaxls
    @Iaxls 7 місяців тому

    Прекрасное объяснение! Благодарю за проделанную работу!👍

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

    Последние видосы радуют. Мне нравится в какую сторону развивается канал.

  • @user-wk3nu3ud2u
    @user-wk3nu3ud2u 2 роки тому +2

    Спасибо, было интересно и по времени то что надо!

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

    Спасибо. Видео про абстракции.
    Появилась идея для ролика: решить одну-две алгоритмические задачки на практике (прям с кодом), применив жадный алгоритм, алгоритм Дейкстры или какой-либо другой.
    Примеры задач:
    1. Задача о N ферзях на шахматной доске NxN
    2. Задача коммивояжёра
    3. Поразрядная сортировка

  • @enkryp
    @enkryp 2 роки тому +11

    Пожалуйста, расскажите про решение задачи коммивояжёра с использованием жадного подхода.

  • @Someone-tz2vs
    @Someone-tz2vs 2 роки тому +1

    Как всегда прекрасно. Спасибо)

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

    прекрасное видео! Спасибо большое! Уже не так страшно смотреть на алгоритмы)

  • @Stalker-of6bn
    @Stalker-of6bn 2 роки тому +3

    Мне понравилась сама мета идея обобщить подходы из теории алгоритмов. Спасибо. После просмотра возникло приятное теплое ощущение понимания (к сожалению задачки на собесе в Яндексе быстро разбивают эту иллюзию). Я бы возможно предложил бы немного еще капнуть в сторону раскрытия поняти сложности алгоритмов O(n). Например, показать, что даже если нас просят отсортировать массив пузырьком, НО при помощи одного цикла (а не двух вложенных), то сложность пузырька все равно O(n*n). То есть дело не в количестве циклов, а в количестве операций сравнения.

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

      А почему O(n^2), а не, скажем, O(n^3)? Как под одномерному циклу определить количество операций сравнения произвольного списка "на глаз"?

    • @Stalker-of6bn
      @Stalker-of6bn 2 роки тому +1

      @@Army_of_Earth я как раз и обратил внимание, что сложность определятся не по циклу, а по количеству операций сравнения. Что касается O(n^2) - в худшем случае нам нужно сравнить каждый элемент с каждым. Поэтому и выходит n*n.

  • @olexkov4643
    @olexkov4643 2 роки тому +3

    Было интересно как всегда.

  • @user-sn3mg8wk7v
    @user-sn3mg8wk7v 2 роки тому +1

    Спасибо, очень интересно.

  • @user-nh3pw8ze5c
    @user-nh3pw8ze5c 2 роки тому +5

    Спасибо! Рад новым видосам с твоего канала, темы стали может более простые, но по мне более интересные. Похудел )

  • @champ__champ
    @champ__champ 2 роки тому +2

    Нереально крутой контент!! Спасибо вам большое!!! Очень не хватает разбора конкретно на примерах, работы с массивами объектами и тд!!! НУУУЖЕН КОД!!!

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

    Многое понял и этой лекции так скажем. Спасибо огромное автору

  • @user-ot8bs7mk4p
    @user-ot8bs7mk4p 2 роки тому +1

    Круто! Спасибо

  • @user-kt9sk1fw9k
    @user-kt9sk1fw9k 2 роки тому

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

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

    Спасибо!

  • @user-pg8ry1tm3t
    @user-pg8ry1tm3t 2 роки тому +1

    Великолепно, то, что нужно! Спасибо большое за видео!

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

    Теоретический минимум по Computer science. 🙂

  • @l7l7l7lful
    @l7l7l7lful 2 роки тому +2

    Жалко у вас нету курса по программированию, я бы тогда с удовольствием стал спонсором.

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

    Спасибо

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

    Я-бы предложил в список включить подход генетических алгоритмов. Как универсальный инструмент для решения задач поиска минимумов-максимумов сложных функций.

  • @MaximRovinsky
    @MaximRovinsky 2 роки тому +7

    Часто на интервью просят решить задачу, не используя рекурсию. Имейте ввиду

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

      @@xtrll Не всегда. Например, с деревьями итеративные алгоритмы сложнее рекурсивных

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

      Странно. Почему так?

    • @user-pg8ry1tm3t
      @user-pg8ry1tm3t 2 роки тому

      Спасибо за инфо. Это резонно, поскольку итерация гораздо менее ресурсозатратная вещь, нежели рекурсия.

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

      понимание как переписывать рекурсию на цикл со стеком оно должно быть. можно попробовать на простых алгоритмах заранее и понять принцип. Причем это ещё круто тем, что например при обходе графа (или чего-то представимого в виде графа) можно менять стек на очередь и получать обход вширь вместо вглубь.

    • @albrehtdurer557
      @albrehtdurer557 2 роки тому +2

      да, одной командой sql

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

    надо на трезвую голову пересмотреть. интересно.

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

    Было бы здорово видеть термины на двух языках: русском и английском. Может помочь в поиске иностранных материалов для дальнейшего изучения.

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

    После недели бурления говен в твиттере, по поводу ненужности алгоритмов, рад этому видео.)

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

    Распараллеливание это еще и метод управления людьми с точки зрения менеджера.

  • @saigon9505
    @saigon9505 10 місяців тому

    Немного нехватает примеров кода, но зато есть направление в которое можно идти чтоб глубже понять тему

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

    Спасибо, эхх... алгоритмы никогда не были моей сильной стороной

  • @user-fv2jw1py4p
    @user-fv2jw1py4p Рік тому

    Чтобы понять рекурсию нужно понять рекурсию)

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

    Привет. Вопрос не по теме. Как щетовидка? Всё норм?

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

    Хорошее объяснение, но слишком абстрактно
    Кстати решение задачи 8ми ферзей в Функциональном стиле при помощи поиска с возвратом есть тут ua-cam.com/video/s739PHlFB44/v-deo.html

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

    мемоизация чем-то похожа на наследование в классах)

  • @user-qx3jt8fw1v
    @user-qx3jt8fw1v 2 роки тому

    Для чего было делать два канала ?

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

    Не хватает наглядности, вот бы на псевдокоде продемонстрировать работу этих алгоритмов...

  • @user-fc4iv9xv1j
    @user-fc4iv9xv1j 2 роки тому

    А ведь я могу использовать Мемоизацию, в выделенном участке применить Разделяй и Властвуй, а уже в разбитых блоках Перебор с возвратом? То есть мало понять и применять алгоритмы. Надо бы осмыслить как эти алгоритмы грамотно композировать для решения общей задачи....

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

    Можно примеры с кодом? А то половина сказанного непонятна.

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

    Чтобы понять рекурсию нужно понять рекурсию

  • @user-ug9vh3rf1o
    @user-ug9vh3rf1o 2 роки тому

    Вопрос гуманитария

  • @1afterall
    @1afterall 2 роки тому

    ...Звук тиховат...

  • @user-ub4mr5dp4q
    @user-ub4mr5dp4q 2 роки тому

    Сори, но индекс «M» стоит поставить посередине)

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

    За 12 лет ни разу не писал алгоритмы, потому, что есть все необходимые коллекции. А вместо рекурсии лучше писать хороший код.

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

      А что ж ты на собеседованиях рассказывал?

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

      @@semax5263 такое не спрашивают, а если спросят делайте выводы

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

      Согласен. Разбираться в рекурсии такое себе удовольствие. А ведь главная задача программиста - создавать поддерживаемый код.

  • @user-zg2bx5cb3d
    @user-zg2bx5cb3d 2 роки тому +6

    Очень поверхностно.
    "Ну вот есть задача да, ну вот там её решили по частям и всё"
    как будто бы в универ вернулся: много слов, смысла и пользы 0

    • @S0ERDEVS
      @S0ERDEVS  2 роки тому +2

      Мне бы пригодилась конструктивная, а не эмоциональная критика. Поэтому если есть конкретные замечания, то я готов их рассмотреть и исправить в будущем.

    • @user-zg2bx5cb3d
      @user-zg2bx5cb3d 2 роки тому

      @@S0ERDEVS больше примеров, конкретных случаев, вокруг которых рассматривается теория.
      Если есть расчёт на новичков в аудитории ролика, то ещё больше примеров.

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

      Не согласен. Таких видос (с конкретными примерами на пару часов) хватает, а это скорее пища для размышлений. Примеры можно и самому нагуглить.

    • @user-zg2bx5cb3d
      @user-zg2bx5cb3d 2 роки тому +1

      @@kekbek1526 это пересказ примитивных учебников для тех, кто не умеет читать.
      А чтение таких пособий займёт... минуты две и будет закончено из-за скуки

    • @S0ERDEVS
      @S0ERDEVS  2 роки тому +5

      @@user-zg2bx5cb3d абсолютно все что я могу сказать есть в учебниках. Куча примеров есть у Кормена, Скиены и других авторов.
      Цель этого видео не повторять учебники, а показать связь между алгоритмами и реальной работой.

  • @user-yd7ds6po4l
    @user-yd7ds6po4l 2 роки тому +1

    Автор плохо понимает, о чём вообще теория алгоритмов

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

      Если вы ограничиваете теорию алгоритмов только теорией вычислений и сложности, то это вы скорее не понимаете что такое теория алгоритмов. Ну или нужна конструктивная критика, а не субъективная оценка ни на чем не основанная кроме ваших заблуждений.

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

      обоснуй с конкретикой или ты балабол.

    • @user-yd7ds6po4l
      @user-yd7ds6po4l 2 роки тому

      @@manOfPlanetEarth О НЕТ ТОЛЬКО НЕ ЗВАНИЕ БАЛАБОЛА ОТ РАНДОМА ИЗ ИНТЕРНЕТА

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

      @@user-yd7ds6po4l
      а у тебя выбора нет. ты сам себя отныне назовешь бабалобом.
      вали отсюда.

  • @user-jv1vi3ti6v
    @user-jv1vi3ti6v Рік тому

    прекрасное видео! Спасибо большое! Уже не так страшно смотреть на алгоритмы)