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

Sdílet
Vložit
  • čas přidán 12. 10. 2021
  • #soer #itubeteam
    Основной канал для общения и публикации новых видео - Телегарм - t.me/softwareengineervlog
    Спонсорство - donate.s0er.ru
    Сайт платным контентом - soer.pro
    Зеркало для видео Дзен Видео - zen.yandex.ru/id/5f578bdf22e2...
    GitHub - github.com/soerdev
    Чат для программистов - / discord
    Группа ВК - codeartblog

Komentáře • 80

  • @freddyfox1
    @freddyfox1 Před 2 lety +19

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

  • @kselnaag2482
    @kselnaag2482 Před 2 lety +78

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

    • @antoxatube
      @antoxatube Před 2 lety +11

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

    • @doopath8737
      @doopath8737 Před 2 lety

      поддерживаю

    • @user-rq6tm5iw2p
      @user-rq6tm5iw2p Před 2 lety +23

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

  • @bdick8136
    @bdick8136 Před 2 lety +11

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

  • @VladiqLot
    @VladiqLot Před 2 lety +10

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

  • @ReAgent003
    @ReAgent003 Před 2 lety +1

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

  • @kekbek1526
    @kekbek1526 Před 2 lety +1

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

  • @Iaxls
    @Iaxls Před 7 měsíci

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

  • @user-wk3nu3ud2u
    @user-wk3nu3ud2u Před 2 lety +2

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

  • @alexpunch3036
    @alexpunch3036 Před 2 lety +1

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

  • @enkryp
    @enkryp Před 2 lety +11

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

  • @champ__champ
    @champ__champ Před 2 lety +2

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

  • @Stalker-of6bn
    @Stalker-of6bn Před 2 lety +3

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

    • @Army_of_Earth
      @Army_of_Earth Před 2 lety

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

    • @Stalker-of6bn
      @Stalker-of6bn Před 2 lety +1

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

  • @Someone-tz2vs
    @Someone-tz2vs Před 2 lety +1

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

  • @user-nh3pw8ze5c
    @user-nh3pw8ze5c Před 2 lety +5

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

  • @user-sn3mg8wk7v
    @user-sn3mg8wk7v Před 2 lety +1

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

  • @olexkov4643
    @olexkov4643 Před 2 lety +3

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

  • @silkcode3178
    @silkcode3178 Před 2 lety

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

  • @ozimandias1738
    @ozimandias1738 Před rokem +1

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

  • @user-ot8bs7mk4p
    @user-ot8bs7mk4p Před 2 lety +1

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

  • @user-kt9sk1fw9k
    @user-kt9sk1fw9k Před 2 lety

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

  • @l7l7l7lful
    @l7l7l7lful Před 2 lety +2

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

  • @NovikDima
    @NovikDima Před 2 lety +1

    Спасибо!

  • @asumptio
    @asumptio Před 2 lety +1

    Спасибо

  • @markkovalyov9492
    @markkovalyov9492 Před 2 lety

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

  • @user-pg8ry1tm3t
    @user-pg8ry1tm3t Před 2 lety +1

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

  • @igroykt
    @igroykt Před 2 lety

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

  • @Trixter9000
    @Trixter9000 Před 2 lety

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

  • @MaximRovinsky
    @MaximRovinsky Před 2 lety +7

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

    • @whatever6223
      @whatever6223 Před 2 lety

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

    • @vladimiralkin
      @vladimiralkin Před 2 lety

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

    • @user-pg8ry1tm3t
      @user-pg8ry1tm3t Před 2 lety

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

    • @TwilightSun32
      @TwilightSun32 Před 2 lety +1

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

    • @albrehtdurer557
      @albrehtdurer557 Před 2 lety +2

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

  • @AlexFour
    @AlexFour Před 2 lety +1

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

  • @saigon9505
    @saigon9505 Před 10 měsíci

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

  • @denyskorolkov
    @denyskorolkov Před 2 lety

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

  • @infdox9051
    @infdox9051 Před 2 lety +1

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

  • @user-fv2jw1py4p
    @user-fv2jw1py4p Před rokem

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

  • @yuritian8830
    @yuritian8830 Před rokem

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

  • @iiepe1915
    @iiepe1915 Před 2 lety

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

  • @wolf_code
    @wolf_code Před 2 lety +1

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

  • @user-qx3jt8fw1v
    @user-qx3jt8fw1v Před 2 lety

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

  • @punchyarchy8850
    @punchyarchy8850 Před 2 lety

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

  • @JacobAkulov
    @JacobAkulov Před 2 lety

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

  • @user-fc4iv9xv1j
    @user-fc4iv9xv1j Před 2 lety

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

  • @Mike58128
    @Mike58128 Před 2 lety

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

  • @user-ug9vh3rf1o
    @user-ug9vh3rf1o Před 2 lety

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

  • @1afterall
    @1afterall Před 2 lety

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

  • @user-ub4mr5dp4q
    @user-ub4mr5dp4q Před 2 lety

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

  • @LordZiegfrid
    @LordZiegfrid Před 2 lety +1

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

    • @semax5263
      @semax5263 Před 2 lety

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

    • @LordZiegfrid
      @LordZiegfrid Před 2 lety

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

    • @iridiumhawk
      @iridiumhawk Před 2 lety

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

  • @user-yd7ds6po4l
    @user-yd7ds6po4l Před 2 lety +1

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

    • @S0ERDEVS
      @S0ERDEVS  Před 2 lety +1

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

    • @manOfPlanetEarth
      @manOfPlanetEarth Před 2 lety

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

    • @user-yd7ds6po4l
      @user-yd7ds6po4l Před 2 lety

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

    • @manOfPlanetEarth
      @manOfPlanetEarth Před 2 lety

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

  • @user-zg2bx5cb3d
    @user-zg2bx5cb3d Před 2 lety +6

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

    • @S0ERDEVS
      @S0ERDEVS  Před 2 lety +2

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

    • @user-zg2bx5cb3d
      @user-zg2bx5cb3d Před 2 lety

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

    • @kekbek1526
      @kekbek1526 Před 2 lety +4

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

    • @user-zg2bx5cb3d
      @user-zg2bx5cb3d Před 2 lety +1

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

    • @S0ERDEVS
      @S0ERDEVS  Před 2 lety +5

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

  • @user-jv1vi3ti6v
    @user-jv1vi3ti6v Před rokem

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