Сложность алгоритмов | Эффективный код и нотация 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 ч...
Благодарю за поддержку!
Лучшие уроки по Пайтону на всём русском Ютубе! Как раз после ООП хотел изучать Алгоритмы и структуры данных.
Это просто нечто! Никогда в жизни не понимал эти О-шки, но здесь очень интересно было смотреть, потрясающее объяснение и примеры, огромнейшее спасибо за данное видео! Определенно еще пересмотрю его в будущем! 🔥
Честно , не могу не согласиться с комментаторами выше, я очень рад что смог найти ваш канал и больше рад, что его использовали в качестве источника доп. информации в популярном бесплатном курсе на Stepik. Желаю Вам всех благ
Иногда мне писали, что мой код неоптимизированный, я и не понимал, что не так. В ответ мне говорили что-то про эти О(n), я ничего не понимал. Сейчас мне всё стало ясно. Спасибо!
Ещё не посмотрел, но сразу лайк. Инфа на канале крайне полезная и доступная.
Больше Спасибо! Ваш труд очень важен. Здоровья вам.
Спасибо за труд!
Спасибо Вам большое)
Сейчас в процессе изучения python! (В данный момент подошел к изучению django). Часто использую для изучения ваши материалы и опираюсь на них. Стараюсь совмещать и ваши видео и книги (в том числе которые вы советовали) и курсы. Еще некоторые видео с вашего канала для меня рановато, но обязательно прийдет время и их изучу.
Еще раз, спасибо Вам большое, за такую проделанную работу, и то что вы это выкладываете абсолютно бесплатно!!!
Спасибо !! Полезное для меня видео !
Досмотрел видео могу сказать вы человек с большой буквы, спасибо
Чудесно, благодарю за труд!
Понравилось. Смотрится легко.
Спасибо за грамотно преподнесенные знания.
Спасибо тебе за такой труд, очень круто💪
Спасибо большое за урок!
Бро, ты идеально объясняешь
Божественное объяснение. Благодарю за бесплатный суперкачественный контент.
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
спасибо, очень ценная информация
Хорошее видео, спасибо вам
Спасибо, очень полезно!
Спасибо!
Брат, это супер видео! Просьба, сделай курс по Django REST, по всем канонам и написания тестов с моками, с добавлением celery. Кстати по Celery очень мало обьяснений как правильно работать с очередью и крон задачами.
UPD Здоровья тебе и процветания каналу!
Очень качественный контент, понятное объяснение, лучший канал!!
for i in range(100000):
print('Спасибо большое!')
😅👍👍👍👍
ашалеть,конечно не fastapi но тоже круто послушать от тебя про алгосы
Будет ли видео о докере и как на нём поднять джанго приложение?
Здравствуйте. Смотрю ваш канал уже почти год. Уроки самые лучшие. К сожалению, последние 2 месяца меня донимали проблемы со здоровьем сегодня впервые после долгого перерыва смотрю ваш новый урок. Вы меня возвращаете к жизни. Спасибо огромное. Всего самого наилучшего вам
Когда про время выполнения ?))
Ещё будут видео по этой теме?
Спасибо. Всё доходчиво.
А что имеет большую сложность n! или n^n?
n^n быстрее растет, то есть сложнее (если такая есть), можно проверить в калькуляторе, например для 10 (больше смысла нет для обоих вариантов, они не применимы для больши́х значений на практике)
Уважаемый автор этого канала, когда планируете выпустить следующее видео, по этой теме?
Не уверен что буду продолжать это направление. Судя по всему мало кому это интересно.
@@PythonHubStudio просто пока что мало кто понимает важность этого
Подскажите, что это за тема в vs code?
У меня рекурсивная функция по поиску 40 числа фибоначи заняла 12 секунд.
А поиск 50 числа за 1594.391 секунд
жаль на руби и рельсах не пишите(
❤❤❤dgdhdgu
Рекурсивные функции это ужас! Бывают ли вообще случаи в практике, когда нужно прибегать к использованию рекурсивных функций? Это очень сильно усложняет понимание и чтение кода, а ваш случай показал, что и скорость выполнения хромает.
1) Рекурсивные применяются редко.
2) Сам факт рекурсии не равно медленный, в видео просто конкретный пример такой
рекурсии удобны когда нужно искать что-то в коллекциях неизвестной вложенности
👍👍👍👍👍