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

Друзья, с радостью наконец-то выкладываю видео про сложности алгоритмов и 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

Пікірлер: 309

  • @alexcellencevolodindro
    @alexcellencevolodindro2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @user-wz9yj2uh1b
    @user-wz9yj2uh1b2 жыл бұрын

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

  • @ushu_sanda

    @ushu_sanda

    2 ай бұрын

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

  • @denislopatkin6996

    @denislopatkin6996

    5 күн бұрын

    Если мне лидом когда нибудь будут предлагать должность, то откажусь. Мне кодить интереснее

  • @Sona-ph9qk
    @Sona-ph9qk Жыл бұрын

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

  • @Chewyevp
    @Chewyevp2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @katerina6259
    @katerina6259 Жыл бұрын

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

  • @tamnends2180
    @tamnends2180 Жыл бұрын

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

  • @yuriy_vins
    @yuriy_vins2 жыл бұрын

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

  • @mammadovrashad339
    @mammadovrashad339 Жыл бұрын

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

  • @gritsienkooleg3447
    @gritsienkooleg34472 жыл бұрын

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

  • @filipploss
    @filipploss Жыл бұрын

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

  • @user-jf2wl4rr7t
    @user-jf2wl4rr7t2 жыл бұрын

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

  • @valeriivolkov_ua
    @valeriivolkov_ua2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @maksimdubinin
    @maksimdubininАй бұрын

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

  • @luckytima2315
    @luckytima23152 жыл бұрын

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

  • @valeriipimenov4894
    @valeriipimenov48942 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @user-mx1ui6sh6k
    @user-mx1ui6sh6k Жыл бұрын

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

  • @nylinary
    @nylinary2 жыл бұрын

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

  • @webelart
    @webelart2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @yaroslava6111
    @yaroslava6111 Жыл бұрын

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

  • @heybeachMIN
    @heybeachMIN2 ай бұрын

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

  • @alenamitnovizki3857
    @alenamitnovizki3857 Жыл бұрын

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

  • @d_r_robot
    @d_r_robot2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @EvilYou

    @EvilYou

    2 жыл бұрын

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

  • @d_r_robot

    @d_r_robot

    2 жыл бұрын

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

  • @yuriilukianovych8660

    @yuriilukianovych8660

    2 жыл бұрын

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

  • @DaZdraNa

    @DaZdraNa

    2 жыл бұрын

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

  • @user-qp8hg4ds2b
    @user-qp8hg4ds2b9 ай бұрын

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

  • @moguha
    @moguha2 ай бұрын

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

  • @a98cb985
    @a98cb9852 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @racman9964
    @racman99642 жыл бұрын

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

  • @workspace8021
    @workspace802111 ай бұрын

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

  • @liliyasiadzelnikava96
    @liliyasiadzelnikava962 жыл бұрын

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

  • @vladvoloshenko5701
    @vladvoloshenko57012 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @igorsergeev9311
    @igorsergeev93112 жыл бұрын

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

  • @leokorsunsky2395
    @leokorsunsky23952 жыл бұрын

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

  • @benduolo2125
    @benduolo212510 ай бұрын

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

  • @inspayran2049
    @inspayran20497 ай бұрын

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

  • @dmitriy9152
    @dmitriy91522 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @user-gf7hl5xt3m
    @user-gf7hl5xt3m3 ай бұрын

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

  • @seniorfrom3327
    @seniorfrom33272 жыл бұрын

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

  • @igorpishurkov
    @igorpishurkov Жыл бұрын

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

  • @YarkiiYa
    @YarkiiYa2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

    Рад, что было полезно)

  • @anastasiaviva5721
    @anastasiaviva57212 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @MrNightingale1989
    @MrNightingale19892 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @anton-vr5xw
    @anton-vr5xw2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @Devivl
    @Devivl Жыл бұрын

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

  • @JrgenMaximenko
    @JrgenMaximenko2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @Maiq-The_Liar
    @Maiq-The_Liar2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @aleksandrkornev2513
    @aleksandrkornev25132 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @konstantino7016
    @konstantino70162 жыл бұрын

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

  • @yans8930
    @yans89302 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

    Очень рад!

  • @OREH88
    @OREH88 Жыл бұрын

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

  • @user-yo8jx7ti5m
    @user-yo8jx7ti5m2 жыл бұрын

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

  • @dmitry311212
    @dmitry3112122 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @TheDergraue
    @TheDergraue Жыл бұрын

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

  • @kazbek_azerbaev
    @kazbek_azerbaev2 жыл бұрын

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

  • @mikolakvich8341
    @mikolakvich8341 Жыл бұрын

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

  • @vladislavshamrin4976
    @vladislavshamrin49762 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @DepechLyot
    @DepechLyot2 жыл бұрын

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

  • @Kostyan-120
    @Kostyan-1202 жыл бұрын

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

  • @sultonbekzhoroev7105
    @sultonbekzhoroev71052 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

    Рад, что было полезно

  • @vladimirdo
    @vladimirdo Жыл бұрын

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

  • @komidik1548
    @komidik1548 Жыл бұрын

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

  • @spidermadness
    @spidermadness7 ай бұрын

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

  • @user-ey5ei4ki7r
    @user-ey5ei4ki7r Жыл бұрын

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

  • @robertkatring4913
    @robertkatring49135 ай бұрын

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

  • @user-is3qu7py7l
    @user-is3qu7py7l2 жыл бұрын

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

  • @vovaseagull1097
    @vovaseagull10972 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @user-roman-giraffe
    @user-roman-giraffe2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

    Класс! Очень рад слышать)

  • @user-yj4wt8nr6v
    @user-yj4wt8nr6v2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

    Рад, что полезно! :)

  • @dimr5001
    @dimr50012 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @milgoff
    @milgoff Жыл бұрын

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

  • @mary_vishnevskayy
    @mary_vishnevskayy Жыл бұрын

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

  • @JavaScript_95
    @JavaScript_953 ай бұрын

    Отметил все свои ошибки, огромное спасибо за видео😂😂😂

  • @andreyzinovjev3920
    @andreyzinovjev39202 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

    Рад! :)

  • @mykhailostepanishchev6472
    @mykhailostepanishchev6472 Жыл бұрын

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

  • @user-qk5lr6kt4m
    @user-qk5lr6kt4m2 жыл бұрын

    Огонь!)

  • @lliarona
    @lliarona2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

    Рад 😀

  • @maksimmaliauka3026
    @maksimmaliauka3026 Жыл бұрын

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

  • @thecomrad1677
    @thecomrad16773 ай бұрын

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

  • @user-ng6rh1dn8g
    @user-ng6rh1dn8g2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

    Рад, что было полезно!

  • @konglomora227
    @konglomora2272 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @konglomora227

    @konglomora227

    2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @evge5960
    @evge59609 ай бұрын

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

  • @Alikhan-xm1xq
    @Alikhan-xm1xq Жыл бұрын

    Комментарий для продвижения!

  • @user-sn5zm7ml3w
    @user-sn5zm7ml3w2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @19Sanji
    @19Sanji9 ай бұрын

    Спасибо 😊

  • @onGrill
    @onGrill2 жыл бұрын

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

  • @zoomle_iOS
    @zoomle_iOS2 жыл бұрын

    Спасибо!

  • @JohnDoe-jd6vn
    @JohnDoe-jd6vn2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @jecknarel6078
    @jecknarel6078 Жыл бұрын

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

  • @softwareengineer7323
    @softwareengineer73232 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @user-ei5zp2qi4j
    @user-ei5zp2qi4j2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @hardclide
    @hardclide2 жыл бұрын

    Супер!

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @NazarLesyuk
    @NazarLesyuk2 жыл бұрын

    дякую за освітлення теми, дуже актуально

  • @frontendscience

    @frontendscience

    2 жыл бұрын

    Дякую за пiдтримку! Радий що сподобалось!

  • @viv81ster
    @viv81ster2 жыл бұрын

    Годнота Подача очень хорошая, что примеры что определения

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @EvilYou
    @EvilYou2 жыл бұрын

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

  • @EvilYou

    @EvilYou

    2 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

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

  • @perfectionist2518
    @perfectionist25182 жыл бұрын

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

  • @frontendscience

    @frontendscience

    2 жыл бұрын

    Рады, что полезно! )

  • @vitaliidrapaliuk5652
    @vitaliidrapaliuk56522 жыл бұрын

    Браво!)

  • @dmitriystoyanov933
    @dmitriystoyanov9332 жыл бұрын

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

  • @iNikelas
    @iNikelas Жыл бұрын

    thanks!

  • @serb1146
    @serb1146 Жыл бұрын

    Спасибо.

  • @gooDayDev
    @gooDayDev2 жыл бұрын

    Поддерживающий комментарий.

  • @frontendscience

    @frontendscience

    2 жыл бұрын

    Спасибо )

  • @nikenuke
    @nikenuke2 жыл бұрын

    спасибо!

  • @user-dp9em6vg8e
    @user-dp9em6vg8e2 жыл бұрын

    Ты крут!!!