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
Это, пожалуй, лучшее видео на UA-cam по сложности алгоритмов. Автор, ты просто супер!
Рад слышать, что понравилось! Благодарю)
Еххх 5 лет назад учил js по ворованным лекциям с другой образовательной платформы, с данными преподавателем. Теперь я уже тимлид. Рад что продолжает преподавать и снимать контент. Рекомендую данного преподавателя!
Тимлид за 5 лет ? Ты умница в таком случае. Работаешь еще или поменял место работы ?
Я мучалась целый день с этой темой, но когда нашла это видео всё сразу встало на свои места. Спасибо огромное!
Шикарное объяснение - понятно и интересно! большое спасибо!
Спасибо! Все прямо по полочкам разложил, простым и понятным языком.
Спасибо большое за данный урок! Это прекрасно!
Действительно самое понятное объяснение. Спасибо большущее, Сергей! Очень нравится ваш канал))). И с мемами намного веселее смотреть, конечно)).
Это было третье видео по данной теме, которое я посмотрела. Самое доступное изложение материала! Супер
Спасибо , как всегда понятно и легко :)
Безумно благодарен за это видео! Невероятная подача, сразу все понятно.
Очень вдохновляет такая обратная саязь! Благодарим Вас)
Огромное спасибо за такой качественный контент и такую приятную подачу.
Очень хотелось подкапаться, но не нашлось за что
Просто и доходчиво. Респект тебе Сергей
Круче видео про объяснения на IT тему не встречал! И всё по полочкам, и ещё монтаж уровень БОГ!🤩 Всё четко, стильно, красиво дак ещё и с юмором. в конце гифка с дискетой бомба! 😂💥👍👍👍
Спасибо, очень понятно объяснил, как раз то, что я искал)
0:28 Полностью согласен! В книге Грокаем алгоритмы хорошо показана разница между хорошим алгоритмом с O(log n) и плохим O(n). Поэтому очень интересно узнать как определить эту самую биг О для моих решений задач
Спасибо, лучшее объяснение из всех, что видел. Осталось теперь с о-малым разобраться)
Как всегда на уровне!
Комментарий в поддержку канала! Спасибо, Сергей, за вами будущее!)
Лучшего объяснения я не видел, спасибо!
Супер-объяснение! Спасибо большое
Читал про это в "Грокаем Алгоритмы ", приблизительно понял как юзать в связке с js из этого видео. Спасибо.
Благодарю. Да книга отличная! Рад что было полезно!
Я скачал эту книгу недавно, тоже интересно и полезно будет узнать больше про алгоритмы. Пока только знаю бинарный поиск из видео на канале ;)
@@EvilYou читается легко на одном дыхании так сказать, отличная книга.
Дождался на днях эту книгу. Так что видос вовремя!!!
Да, по сути видео - пересказ книги
Очень понятно объяснили! Спасибо большое
Огромное спасибо! Мира вам....и нам
Классный урок! Спасибо 🙏🏼
Очень крутой монтаж и объяснения: чётко, без воды, с примерами. 🔥
Благодарим за поддержку:)
Шикарное объяснение! В процессе видео хотел несколько раз поставить лайк, а потом вспоминал, что уже поставил 😄
Спасибо за видео!
Спасибо за видео и подробные примеры
Спасибо, теперь все понятно!
Круто, спасибо ♥️
Спасибо за объяснение!
Спасибо! Лайк! Читаю как раз книгу "Грокаем алгоритмы"... и тут такое шикарное видео-объяснение!
Рад, что вовремя и что полезно ;)
Отличное объяснение с примерами, спасибо!
Спасибо за старания 🎉
Большое спасибо! Очень доходчиво
Спасибо, очень доходчиво, без лишних заморочек
Спасибо за поддержку! Рад, что было полезно!
Очень круто объясняете, картинка в голове начинает проясняться)) Спасибо!!
p.s. заметила интересный момент - смотрю не одного блогера на данную тематику, у многих на заднем фоне какой-нибудь подсвеченный элемент)
Благодаря твоим урокам я подготовился и успешно прошел собеседование в Яндекс! Уже более полугода работаю в команде Поиска фронтенд-разработчиком. Спасибо за то, что ты делаешь!
Отличное видео, спасибо!
Обалденный видос! Реально самое понятное объяснение по Big O в рунете с примерами на JavaScript! Автору огромный респект!!!
Благодарю за поддержку! Рад, что было полезно :)
смотрел несколько роликов по алгоритмам ваш лучше всех)
приятно смотреть, спасибо за старания)
Отлично! Рад, что понравилось
Чутка понятнее стало, спасибо!
очень полезно и понятно, пересмотрел несколько раз)
Прекрасная тема )
Спасибо.
Рад что было полезно! Благодарю за поддержку!
Супер! Спасибо за видео!
Рад, что Вам понравилось)
Спасибо большое!!!
Спасибо огромное!
Благодарю за хорошее объяснение ) Очень приятно было смотреть, всем рекомендую )
Сергій у Вас талант робити такі навчальні відео! Жаль що більше не робити такого контенту: з великим задоволенням послухав вас на такі цікаві теми як системний дизайн, алгоритми та структури даних
Большое спасибо за видео!
Рад что понравилось!
Огромное спасибо за видео! Очень помогло найти нужное решение при решении задачек)
Очень рад!
Спасибо большое за подобные видео! очень доступно все рассказываешь)
Рад, что было полезно)
Спасибо за видео! У Вас очень качественная подача материала! :)
Мне в удовольствие :) благодарю за поддержку!
Большое спасибо за такие видео!
Мне как гуманитарию, котрый работает в програмировании очень полезно было)
Очень рад слышать. Благодарю и Вас)
Успехов в программировании!
Очень полезное видео, спасибо большое 👍
Рад, что оказалось полезно!
Одним словом лайк!👍
Спасибо за видео. Очень информативно 👍👍
Очень рад:) Спасибо за поддержку
спасибо за видео, посмотрел с интересом
Дай тебе Бог здоровья!)
Спасибо, я ждал)
Супер! Рад слышать :) надеюсь, будет полезно
Однозначно :)
Много интересных вещей узнал благодаря вашим трудам :)
@@konglomora227 Благодарю за поддержку! Вдохновляет :)
Спасибо за видео! Очень полезное оказалось для меня)
Спасибо. Очень доходчиво.
Рад, что оказалось полезно:)
Удивлен, что я все понял. Уже несколько видео до этого пересмотрел - сложно и не понятно. Спасибо большое. Лайк прожал )
Класс! Очень рад слышать)
Класс! Годный материал, на днях задавался вопросом изучить эту тему - а тут уже готовый видосик:) Спасибо за труд!
18:43 я немного по-другому для себя решил, при n=5, к примеру, мы получаем суммарно 5+4+3+2+1 операций, т.е. арифметическую прогрессию. Формула которой (a1+an)*n/2. Т.к. an=n и а1 мы можем отбросить, получится n в квадрате, делённое на 2.
Рад что понравилось!
Да - один из вариантов решать через прогрессию. Я постарался более интуитивно наглядно показать. Думаю если вдруг на собеседовании спросят - подойдет и тот и тот вариант.
Спасибо 😊
Огонь!)
ОЧЕНЬ полезный видос, спасибо!
Рад, что было полезно) старался объяснять именно так
Круто, спасибо!
Рад 😀
Сел посмотреть видео за кружкой кофе, чтобы немного разгрузиться, и понял как работает сложность алгоритмов. Спасибо за простое и увлекательное объяснение!
Рады, что Вам понравилось и что с пользой :)
круто) спасибо
Спасибо за инфу!
Рад, что полезно! :)
Ахудивительное видео) Спасибо ща простоту.
Я смотрел лекции по алгоритмам от MIT , но там уж слишком много математики, чтобы продолжить это делать.
В вашем видео все очень просто и понятно )
Рад что оказалось полезно! Благодарю за поддрежку!
Спасибо!
Спасибо огромное, самое лучшее объяснение
Рад, что было полезно
Пушка. Спасибо!
Рад, что было полезно!
Спасибо за видео. Очень информативно.
Когда впервые узнал про big O, посмотрел одно видео про алгоритмы. Оказалось, что сложность считать довольно просто, но в том видео примеры были на другом ЯП.
В видео Сергея мало того, что все примеры на JS, так еще и с примерами, которые часто используются на практике. Например, с числами Фибоначчи, использовал алгоритм когда изучал рекурсию, процессор выдавал серьезные задержки начиная с числа 40. Пример с поиском такого же символа именно так не использовал, но теперь буду знать как делать это оптимально ;)
Вообще, посмотрев видео, думаю заглянуть в свои старые лекции по мат. анализу и вспомнить, как раньше задачи подобные решал, только там константы не отбрасывались ;)
Нашел, то что искал. Доказывается сложность алгоритмов через сходимость рядов. Например, с помощью признака Даламбера можно в 2 строчки доказать, что факториал растет быстрее, чем любая показательная (она же экспотенциальная) последовательность. Если спросят на собеседовании про алгоритмы, скажу, что готов доказать математически.
P.S. Хоть где-то вышмат пригодится :D
Очень рад что оказалось полезно!
На фронтендера на собеседовании вряд ли будут спрашивать мат доказательство сложности. Но на фулстеков в крупных компаниях типа google - вполне могут
Браво!)
Улетел автолайкосик!!!!
Классная музыка на фоне, ну и видео очень информативное
Большое спасибо,Как посчитать сложность алгоритма.
Не ну это полная подписка!)
Рад! :)
красавчик, спасибо тебе за все)
И Вам спасибо!
God bless you for your content. 🙂.
Очень полезно и информативно.
Благодарю за поддержку! Рад что было полезно
четко обьяснил👍
Спасибо за видео. Советую пересмотреть после прочтения книги "Грокаем алгоритмы"
я только начинаю копаться в JS, но я суть уловил. Думаю, пересмотрю обязательно, когда дойду до Junior)). Ваш канал 🔝
Рады, что полезно! )
спасибо!
Спасибо.
Спасибо, очеь крутое и понятное обьяснение )
Сергей, спасибо тебе большое и спасибо твоей супруге (в описании к каналу написано, что она тоже участвует в создании видео).
Очень здорово ты рассказал про Big O. Я наконец-то понял 😂
И вообще канал отличный! Сморю очень часто)
Спасибо 🙌
Хорошее объяснение
Ты крут!!!
Спасибо за видео
Рад, что было полезно! Спасибо и Вам!
Супер!
Рад, что понравилось.
Спасибо брат завтра сдавать куиз по АДС и там тема биг о есть, спасибо большое!
Самое доступное объяснение, топ.
thanks!
Скоро на собесе будут меня мучать этими сложностями алгоритмов, но благодаря видосу я готов!) Надеюсь этой базы хватит.
Лайк не смотря!
вот это доброе утро)))
Доброе )