Рет қаралды 1,161
В этом видео я постарался рассказать простым языком непростую тему: алгоритмическая сложность. Возможно, некоторые моменты все же придется погуглить. В видео сделан расчет на то, что вы умеете программировать на языке Java (ну или на каком-то другом языке) и хоть немного знаете школьную математику: возведение в степень, извлечение корня из числа, группировка скобок и тд
ТАЙМКОДЫ:
00:00 - Просто болтаю
01:50 - Первый пример (метро) создания функций (линейная функция)
06:30 - Второй пример (сервер) создания функций (параболическая)
10:00 - Основные виды функций: Логарифмическая, линейная и тд
12:29 - Как сравнивать функции ?
14:46 - Что такое Алгоритмическая сложность ?
15:25 - Пример определения сложности в одномерном и двухмерном массиве
23:13 - Сложность нижняя (омега), средняя (тета) и верхняя (О)
26:00 - Сложность константных операций
26:22 - Почему мы не можем просто назвать точное время работы алгоритма ?
28:20 - Правила при работе со сложностью
30:16 - Определяем сложность КАЖДОЙ строчки в программе с одномерным массивом
31:50 - Отрицательная сторона сложности
32:30 - Какое количество операций в секунду совершает процессор
33:38 - Сложность по памяти
34:16 - Компромисс между сложностью по памяти и сложностью по времени
35:18 - Почему операция поиска в сбалансированном бин дереве O(log(n))
42:24 - Определяем максимальную сложность НЕОПТИМАЛЬНОГО алгоритма Фибоначчи
54:08 - Определяем максимальную сложность НЕОПТИМАЛЬНОГО алгоритма Фибоначчи вторым СЛОЖНЫМ способом
1:01:53 - Сложность остальных алгоритмов вычисляющих числа Фибоначчи
ссылка на тг t.me/Codovarnya