Сложность алгоритмов | Эффективный код и нотация Big O #1 Алгоритмы и структуры данных

Поділитися
Вставка
  • Опубліковано 19 чер 2024
  • Оценка асимптотической сложности алгоритмов в виде нотации big O - один из главных критериев оценки эффективности кода.
    00:00 Введение. Алгоритмы и структуры данных
    02:55 Оценка сложности алгоритмов
    08:22 Нотация Big O
    11:23 Оценка сложности простых алгоритмов на псевдокоде
    19:05 Самопроверка. Закрепляем материал на коде
    27:47 Почему не учитывают ЛЮБЫЕ константы. Динамика времени при разной сложности
    32:05 Неважная сложность в оценке big O
    34:26 Рассчет n-числа Фибоначчи. Разная сложность.
    36:14 Рекурсия со степенной прогрессией времени
    39:04 Рекурсивное дерево вызовов и повторные вычисления
    43:06 Алгоритм с линейной прогрессией времени
    49:45 Двоичный поиск в отсортированном массиве. Логарифмическая сложность
    59:20 Логарифм
    01:05:32 Итого. Оценка как показатель эффективности
    Поддержать канал:
    На канале доступна функция Спонсорство с дополнительными бонусами.
    Присоединиться:
    / pythonhubstudio
    А также кнопка Суперспасибо под видео (отображается не во всех странах).
    Код из видео:
    github.com/PythonHubStudio/al...
    Курс по python 7 часов:
    • Учим python за 7 часов...
    Курс по Django 15 часов:
    • Полный курс уроков по ...
    Курс HTML / CSS:
    • Учим HTML и CSS за 7 ч...
    Благодарю за поддержку!

КОМЕНТАРІ • 42

  • @user-ud4tb7yx1j
    @user-ud4tb7yx1j 2 місяці тому +6

    Лучшие уроки по Пайтону на всём русском Ютубе! Как раз после ООП хотел изучать Алгоритмы и структуры данных.

  • @Loony666Noob
    @Loony666Noob 2 місяці тому +5

    Это просто нечто! Никогда в жизни не понимал эти О-шки, но здесь очень интересно было смотреть, потрясающее объяснение и примеры, огромнейшее спасибо за данное видео! Определенно еще пересмотрю его в будущем! 🔥

  • @user-uw9sd2lq1b
    @user-uw9sd2lq1b Місяць тому +2

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

  • @fokas8174
    @fokas8174 12 днів тому

    Иногда мне писали, что мой код неоптимизированный, я и не понимал, что не так. В ответ мне говорили что-то про эти О(n), я ничего не понимал. Сейчас мне всё стало ясно. Спасибо!

  • @oreshkinalexey
    @oreshkinalexey 2 місяці тому +2

    Ещё не посмотрел, но сразу лайк. Инфа на канале крайне полезная и доступная.

  • @user-rq7sv7bi2m
    @user-rq7sv7bi2m 2 місяці тому +1

    Больше Спасибо! Ваш труд очень важен. Здоровья вам.

  • @user-ot9ex6jf7p
    @user-ot9ex6jf7p 8 днів тому

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

  • @user-gw1wo5cx3b
    @user-gw1wo5cx3b 2 місяці тому +1

    Спасибо Вам большое)
    Сейчас в процессе изучения python! (В данный момент подошел к изучению django). Часто использую для изучения ваши материалы и опираюсь на них. Стараюсь совмещать и ваши видео и книги (в том числе которые вы советовали) и курсы. Еще некоторые видео с вашего канала для меня рановато, но обязательно прийдет время и их изучу.
    Еще раз, спасибо Вам большое, за такую проделанную работу, и то что вы это выкладываете абсолютно бесплатно!!!

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

    Спасибо !! Полезное для меня видео !

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

    Досмотрел видео могу сказать вы человек с большой буквы, спасибо

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

    Чудесно, благодарю за труд!

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

    Понравилось. Смотрится легко.

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

    Спасибо за грамотно преподнесенные знания.

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

    Спасибо тебе за такой труд, очень круто💪

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

    Спасибо большое за урок!

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

    Бро, ты идеально объясняешь

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

    Божественное объяснение. Благодарю за бесплатный суперкачественный контент.
    48:36 -- по идее, если длительность расчета была 20 секунд для fib(35), то для fib(40) она будет в 2^(40-35) = 2^5 = 32 раз дольше.
    Т.е. 20 х 32 = 640 с = 10 минут + 40 секунд.
    Но Python оптимизирует выполнение и результат будет быстрее.
    Например, у меня на ноутбуке для fib(35) и fib(40) вышло:
    Time (res1): 1.8359365463256836
    Time (res2): 21.23794460296631
    res2 / res1 = 11.567907750118305
    Чуть более короткий код для функции:
    def fib(n):
    n0, n1 = 0, 1
    for _ in range(n):
    n0, n1 = n1, n0 + n1
    return n0

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

    спасибо, очень ценная информация

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

    Хорошее видео, спасибо вам

  • @0AfterLife
    @0AfterLife 2 місяці тому

    Спасибо, очень полезно!

  • @user-gw7hb1ti1w
    @user-gw7hb1ti1w 7 днів тому

    Спасибо!

  • @user-cp8ou1ot5z
    @user-cp8ou1ot5z Місяць тому

    Брат, это супер видео! Просьба, сделай курс по Django REST, по всем канонам и написания тестов с моками, с добавлением celery. Кстати по Celery очень мало обьяснений как правильно работать с очередью и крон задачами.
    UPD Здоровья тебе и процветания каналу!

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

    Очень качественный контент, понятное объяснение, лучший канал!!
    for i in range(100000):
    print('Спасибо большое!')
    😅👍👍👍👍

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

    ашалеть,конечно не fastapi но тоже круто послушать от тебя про алгосы

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

    Будет ли видео о докере и как на нём поднять джанго приложение?

  • @user-pi6fy2fl2f
    @user-pi6fy2fl2f Місяць тому

    Здравствуйте. Смотрю ваш канал уже почти год. Уроки самые лучшие. К сожалению, последние 2 месяца меня донимали проблемы со здоровьем сегодня впервые после долгого перерыва смотрю ваш новый урок. Вы меня возвращаете к жизни. Спасибо огромное. Всего самого наилучшего вам

  • @user-rd3ej8df7y
    @user-rd3ej8df7y Місяць тому

    Когда про время выполнения ?))

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

    Ещё будут видео по этой теме?

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

    Спасибо. Всё доходчиво.
    А что имеет большую сложность n! или n^n?

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

      n^n быстрее растет, то есть сложнее (если такая есть), можно проверить в калькуляторе, например для 10 (больше смысла нет для обоих вариантов, они не применимы для больши́х значений на практике)

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

    Уважаемый автор этого канала, когда планируете выпустить следующее видео, по этой теме?

    • @PythonHubStudio
      @PythonHubStudio  Місяць тому +2

      Не уверен что буду продолжать это направление. Судя по всему мало кому это интересно.

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

      @@PythonHubStudio просто пока что мало кто понимает важность этого

  • @maxpro7135
    @maxpro7135 21 день тому

    Подскажите, что это за тема в vs code?

  • @user-rd3ej8df7y
    @user-rd3ej8df7y Місяць тому

    У меня рекурсивная функция по поиску 40 числа фибоначи заняла 12 секунд.

    • @user-rd3ej8df7y
      @user-rd3ej8df7y Місяць тому

      А поиск 50 числа за 1594.391 секунд

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

    жаль на руби и рельсах не пишите(

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

    ❤❤❤dgdhdgu

  • @user-kn5ip9lr6r
    @user-kn5ip9lr6r Місяць тому

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

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

      1) Рекурсивные применяются редко.
      2) Сам факт рекурсии не равно медленный, в видео просто конкретный пример такой

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

      рекурсии удобны когда нужно искать что-то в коллекциях неизвестной вложенности

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

    👍👍👍👍👍