How to calculate the complexity of an algorithm by BIG O | The clearest explanation!

Поділитися
Вставка
  • Опубліковано 20 тра 2024
  • Друзья, с радостью наконец-то выкладываю видео про сложности алгоритмов и BIG O notation. Вы давно его просили. И это действительно важно для разработчика - знать, как рассчитать сложность алгоритма, а также уметь посчитать сложность своего решения, как по времени, так и по памяти.
    Ведь не всегда код, который выглядит очень компактно, на практике будет самым эффективным. Особенно это касается больших объемов данных. То, насколько эффективно ваш код справляется с большим объемом данных - и показывает сложность алгоритма.
    Поэтому важно знать, какие бывают сложности алгоритмов, от чего они зависят и уметь их рассчитывать. Обладая этими знаниями, вы сможете оптимизировать ваш код или искать другие, более эффективные решения для вашей задачи.
    А еще расчет сложности полученного алгоритма (BIG O) это частый вопрос на собеседованиях. Особенно в таких крупных компаниях, как Google, Facebook, Netflix, Яндекс и пр. А при решении задач с LeetCode создание наиболее оптимального алгоритма, как по времени, так и по памяти, всегда является частью условия задач.
    🚀Я постарался сделать для вас самое понятное объяснение с примерами и иллюстрациями - чтоб вы с первого раза все поняли и запомнили навсегда! 🔥🔥🔥
    Приятного просмотра! Тренируйте полученные знания на практике! И делитесь этим видео с друзьями и коллегами! Увидимся в комментариях!
    👍Если вам было полезно и интересно это видео - оставьте нам хороший комментарий, нам всегда приятно и радостно их читать! 🤓
    👍🤩Друзья, будем благодарны за поддержку нашего канала на Патреоне: / frontendscience
    Таймкоды:
    00:00 Intro
    00:45 Случай с пользователем
    02:43 Что такое Big O
    03:40 Пример из жизни
    05:59 O(1) Константная сложность
    06:38 O(n) Линейная сложность
    07:17 O(log n) Логарифмическая сложность
    08:35 O(n log n)
    08:59 O(n^2) Квадратичная сложность
    09:45 O(n^3) Кубическая сложность
    10:07 O(2^n) Экспоненциальная сложность
    10:33 O(n!) Факториальная сложность
    11:42 График сложностей Big O
    11:52 Отбрасывание констант и несущественной части
    13:45 Примеры
    15:57 Определяем сложности - задачки
    18:58 Сложность встроенных методов
    20:43 Сложность по памяти
    22:20 Когда оптимизировать производительность?
    22:55 Про собеседования
    24:54 Заключение
    ---
    Если видео было для вас полезным, ставьте лайк и поделитесь им с друзьями.
    Подписывайтесь на наш канал: bit.ly/fs-ytb
    ---
    Присоединяйтесь к нам в соцсетях:
    FB: / frontendscience
    Instagram Сергея Пузанкова: / puzankovcom
    Заходите на наш сайт: frontend-science.com/
    👍🤩Будем благодарны за вашу поддержку нашего канала на Патреоне: / frontendscience
    ---
    Music: by Blue Wednesday

КОМЕНТАРІ • 308

  • @alexcellencevolodindro
    @alexcellencevolodindro 2 роки тому +124

    Это, пожалуй, лучшее видео на UA-cam по сложности алгоритмов. Автор, ты просто супер!

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

      Рад слышать, что понравилось! Благодарю)

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

    Еххх 5 лет назад учил js по ворованным лекциям с другой образовательной платформы, с данными преподавателем. Теперь я уже тимлид. Рад что продолжает преподавать и снимать контент. Рекомендую данного преподавателя!

    • @ushu_sanda
      @ushu_sanda Місяць тому

      Тимлид за 5 лет ? Ты умница в таком случае. Работаешь еще или поменял место работы ?

  • @Sona-ph9qk
    @Sona-ph9qk Рік тому +5

    Я мучалась целый день с этой темой, но когда нашла это видео всё сразу встало на свои места. Спасибо огромное!

  • @katerina6259
    @katerina6259 Рік тому +2

    Шикарное объяснение - понятно и интересно! большое спасибо!

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

    Спасибо! Все прямо по полочкам разложил, простым и понятным языком.

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

    Спасибо большое за данный урок! Это прекрасно!

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

    Действительно самое понятное объяснение. Спасибо большущее, Сергей! Очень нравится ваш канал))). И с мемами намного веселее смотреть, конечно)).

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

    Это было третье видео по данной теме, которое я посмотрела. Самое доступное изложение материала! Супер

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

    Спасибо , как всегда понятно и легко :)

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

    Безумно благодарен за это видео! Невероятная подача, сразу все понятно.

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

      Очень вдохновляет такая обратная саязь! Благодарим Вас)

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

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

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

    Просто и доходчиво. Респект тебе Сергей

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

    Круче видео про объяснения на IT тему не встречал! И всё по полочкам, и ещё монтаж уровень БОГ!🤩 Всё четко, стильно, красиво дак ещё и с юмором. в конце гифка с дискетой бомба! 😂💥👍👍👍

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

    Спасибо, очень понятно объяснил, как раз то, что я искал)

  • @konstantino7016
    @konstantino7016 2 роки тому +12

    0:28 Полностью согласен! В книге Грокаем алгоритмы хорошо показана разница между хорошим алгоритмом с O(log n) и плохим O(n). Поэтому очень интересно узнать как определить эту самую биг О для моих решений задач

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

    Спасибо, лучшее объяснение из всех, что видел. Осталось теперь с о-малым разобраться)

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

    Как всегда на уровне!

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

    Комментарий в поддержку канала! Спасибо, Сергей, за вами будущее!)

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

    Лучшего объяснения я не видел, спасибо!

  • @filipploss
    @filipploss 11 місяців тому

    Супер-объяснение! Спасибо большое

  • @d_r_robot
    @d_r_robot 2 роки тому +21

    Читал про это в "Грокаем Алгоритмы ", приблизительно понял как юзать в связке с js из этого видео. Спасибо.

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

      Благодарю. Да книга отличная! Рад что было полезно!

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

      Я скачал эту книгу недавно, тоже интересно и полезно будет узнать больше про алгоритмы. Пока только знаю бинарный поиск из видео на канале ;)

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

      @@EvilYou читается легко на одном дыхании так сказать, отличная книга.

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

      Дождался на днях эту книгу. Так что видос вовремя!!!

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

      Да, по сути видео - пересказ книги

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

    Очень понятно объяснили! Спасибо большое

  • @moguha
    @moguha Місяць тому

    Огромное спасибо! Мира вам....и нам

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

    Классный урок! Спасибо 🙏🏼

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

    Очень крутой монтаж и объяснения: чётко, без воды, с примерами. 🔥

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

      Благодарим за поддержку:)

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

    Шикарное объяснение! В процессе видео хотел несколько раз поставить лайк, а потом вспоминал, что уже поставил 😄

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

    Спасибо за видео!

  • @workspace8021
    @workspace8021 11 місяців тому

    Спасибо за видео и подробные примеры

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

    Спасибо, теперь все понятно!

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

    Круто, спасибо ♥️

  • @maksimdubinin
    @maksimdubinin 14 днів тому

    Спасибо за объяснение!

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

    Спасибо! Лайк! Читаю как раз книгу "Грокаем алгоритмы"... и тут такое шикарное видео-объяснение!

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

      Рад, что вовремя и что полезно ;)

  • @user-qp8hg4ds2b
    @user-qp8hg4ds2b 9 місяців тому

    Отличное объяснение с примерами, спасибо!

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

    Спасибо за старания 🎉

  • @benduolo2125
    @benduolo2125 9 місяців тому

    Большое спасибо! Очень доходчиво

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

    Спасибо, очень доходчиво, без лишних заморочек

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

      Спасибо за поддержку! Рад, что было полезно!

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

    Очень круто объясняете, картинка в голове начинает проясняться)) Спасибо!!
    p.s. заметила интересный момент - смотрю не одного блогера на данную тематику, у многих на заднем фоне какой-нибудь подсвеченный элемент)

  • @user-gf7hl5xt3m
    @user-gf7hl5xt3m 2 місяці тому

    Благодаря твоим урокам я подготовился и успешно прошел собеседование в Яндекс! Уже более полугода работаю в команде Поиска фронтенд-разработчиком. Спасибо за то, что ты делаешь!

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

    Отличное видео, спасибо!

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

    Обалденный видос! Реально самое понятное объяснение по Big O в рунете с примерами на JavaScript! Автору огромный респект!!!

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

      Благодарю за поддержку! Рад, что было полезно :)

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

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

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

      Отлично! Рад, что понравилось

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

    Чутка понятнее стало, спасибо!

  • @Kostyan-120
    @Kostyan-120 2 роки тому

    очень полезно и понятно, пересмотрел несколько раз)

  • @valeriipimenov4894
    @valeriipimenov4894 2 роки тому +8

    Прекрасная тема )
    Спасибо.

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

      Рад что было полезно! Благодарю за поддержку!

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

    Супер! Спасибо за видео!

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

      Рад, что Вам понравилось)

  • @spidermadness
    @spidermadness 6 місяців тому

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

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

    Спасибо огромное!

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

    Благодарю за хорошее объяснение ) Очень приятно было смотреть, всем рекомендую )

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

    Сергій у Вас талант робити такі навчальні відео! Жаль що більше не робити такого контенту: з великим задоволенням послухав вас на такі цікаві теми як системний дизайн, алгоритми та структури даних

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

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

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

    Огромное спасибо за видео! Очень помогло найти нужное решение при решении задачек)

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

    Спасибо большое за подобные видео! очень доступно все рассказываешь)

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

    Спасибо за видео! У Вас очень качественная подача материала! :)

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

      Мне в удовольствие :) благодарю за поддержку!

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

    Большое спасибо за такие видео!
    Мне как гуманитарию, котрый работает в програмировании очень полезно было)

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

      Очень рад слышать. Благодарю и Вас)
      Успехов в программировании!

  • @anton-vr5xw
    @anton-vr5xw 2 роки тому +2

    Очень полезное видео, спасибо большое 👍

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

      Рад, что оказалось полезно!

  • @mikolakvich8341
    @mikolakvich8341 11 місяців тому

    Одним словом лайк!👍

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

    Спасибо за видео. Очень информативно 👍👍

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

      Очень рад:) Спасибо за поддержку

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

    спасибо за видео, посмотрел с интересом

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

    Дай тебе Бог здоровья!)

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

    Спасибо, я ждал)

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

      Супер! Рад слышать :) надеюсь, будет полезно

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

      Однозначно :)
      Много интересных вещей узнал благодаря вашим трудам :)

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

      @@konglomora227 Благодарю за поддержку! Вдохновляет :)

  • @heybeachMIN
    @heybeachMIN Місяць тому

    Спасибо за видео! Очень полезное оказалось для меня)

  • @Maiq-The_Liar
    @Maiq-The_Liar 2 роки тому +1

    Спасибо. Очень доходчиво.

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

      Рад, что оказалось полезно:)

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

    Удивлен, что я все понял. Уже несколько видео до этого пересмотрел - сложно и не понятно. Спасибо большое. Лайк прожал )

  • @JohnDoe-jd6vn
    @JohnDoe-jd6vn 2 роки тому +3

    Класс! Годный материал, на днях задавался вопросом изучить эту тему - а тут уже готовый видосик:) Спасибо за труд!
    18:43 я немного по-другому для себя решил, при n=5, к примеру, мы получаем суммарно 5+4+3+2+1 операций, т.е. арифметическую прогрессию. Формула которой (a1+an)*n/2. Т.к. an=n и а1 мы можем отбросить, получится n в квадрате, делённое на 2.

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

      Рад что понравилось!
      Да - один из вариантов решать через прогрессию. Я постарался более интуитивно наглядно показать. Думаю если вдруг на собеседовании спросят - подойдет и тот и тот вариант.

  • @19Sanji
    @19Sanji 8 місяців тому

    Спасибо 😊

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

    Огонь!)

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

    ОЧЕНЬ полезный видос, спасибо!

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

      Рад, что было полезно) старался объяснять именно так

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

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

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

    Сел посмотреть видео за кружкой кофе, чтобы немного разгрузиться, и понял как работает сложность алгоритмов. Спасибо за простое и увлекательное объяснение!

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

      Рады, что Вам понравилось и что с пользой :)

  • @maksimmaliauka3026
    @maksimmaliauka3026 11 місяців тому

    круто) спасибо

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

    Спасибо за инфу!

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

    Ахудивительное видео) Спасибо ща простоту.
    Я смотрел лекции по алгоритмам от MIT , но там уж слишком много математики, чтобы продолжить это делать.
    В вашем видео все очень просто и понятно )

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

      Рад что оказалось полезно! Благодарю за поддрежку!

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

    Спасибо!

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

    Спасибо огромное, самое лучшее объяснение

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

    Пушка. Спасибо!

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

    Спасибо за видео. Очень информативно.
    Когда впервые узнал про big O, посмотрел одно видео про алгоритмы. Оказалось, что сложность считать довольно просто, но в том видео примеры были на другом ЯП.
    В видео Сергея мало того, что все примеры на JS, так еще и с примерами, которые часто используются на практике. Например, с числами Фибоначчи, использовал алгоритм когда изучал рекурсию, процессор выдавал серьезные задержки начиная с числа 40. Пример с поиском такого же символа именно так не использовал, но теперь буду знать как делать это оптимально ;)
    Вообще, посмотрев видео, думаю заглянуть в свои старые лекции по мат. анализу и вспомнить, как раньше задачи подобные решал, только там константы не отбрасывались ;)

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

      Нашел, то что искал. Доказывается сложность алгоритмов через сходимость рядов. Например, с помощью признака Даламбера можно в 2 строчки доказать, что факториал растет быстрее, чем любая показательная (она же экспотенциальная) последовательность. Если спросят на собеседовании про алгоритмы, скажу, что готов доказать математически.
      P.S. Хоть где-то вышмат пригодится :D

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

      Очень рад что оказалось полезно!
      На фронтендера на собеседовании вряд ли будут спрашивать мат доказательство сложности. Но на фулстеков в крупных компаниях типа google - вполне могут

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

    Браво!)

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

    Улетел автолайкосик!!!!

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

    Классная музыка на фоне, ну и видео очень информативное

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

    Большое спасибо,Как посчитать сложность алгоритма.

  • @andreyzinovjev3920
    @andreyzinovjev3920 2 роки тому +6

    Не ну это полная подписка!)

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

    красавчик, спасибо тебе за все)

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

    God bless you for your content. 🙂.
    Очень полезно и информативно.

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

      Благодарю за поддержку! Рад что было полезно

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

    четко обьяснил👍

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

    Спасибо за видео. Советую пересмотреть после прочтения книги "Грокаем алгоритмы"

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

    я только начинаю копаться в JS, но я суть уловил. Думаю, пересмотрю обязательно, когда дойду до Junior)). Ваш канал 🔝

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

    спасибо!

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

    Спасибо.

  • @thecomrad1677
    @thecomrad1677 2 місяці тому

    Спасибо, очеь крутое и понятное обьяснение )

  • @mikep.3738
    @mikep.3738 Рік тому +2

    Сергей, спасибо тебе большое и спасибо твоей супруге (в описании к каналу написано, что она тоже участвует в создании видео).
    Очень здорово ты рассказал про Big O. Я наконец-то понял 😂
    И вообще канал отличный! Сморю очень часто)
    Спасибо 🙌

  • @evge5960
    @evge5960 9 місяців тому

    Хорошее объяснение

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

    Ты крут!!!

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

    Спасибо за видео

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

      Рад, что было полезно! Спасибо и Вам!

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

    Супер!

  • @robertkatring4913
    @robertkatring4913 4 місяці тому +1

    Спасибо брат завтра сдавать куиз по АДС и там тема биг о есть, спасибо большое!

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

    Самое доступное объяснение, топ.

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

    thanks!

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

    Скоро на собесе будут меня мучать этими сложностями алгоритмов, но благодаря видосу я готов!) Надеюсь этой базы хватит.

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

    Лайк не смотря!

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

    вот это доброе утро)))