Лекция 1. Введение. Сложность алгоритмов. Корректность алгоритмов. Сложность операций. Абстракции.
Лекция 2. Рекурсия. Разделяй и властвуй. Основная теорема о рекурсии. Быстрое вычисление степеней.
Лекция 3. Жадные и линейные алгоритмы.
Лекция 6. Специальные деревья.
Лекция 8. Сбалансированные деревья.
Лекция 11. Динамическое программирование-1.
Лекция 12. Динамическое программирование-2.
Лекция 13. Графы-1. Представление. Обход BFS, DFS. Топологическая сортрировка.
Лекция 16. Графы-4. Поиск кратчайших путей-2. Потоки. Двудольные графы и паросочетания.
Лекция 19. Проверка на простоту. Алгоритм Миллера-Рабина. Факторизация. Алгоритм Ро-Полларда.
Лекция 20. Длинная арифметика. Быстрое преобразование Фурье.
Лекция 23. Вычислительная геометрия. Суммы Минковского.
Лекция 24. Вычислительная геометрия. Задача принадлежности. Пересечение полуплоскостей.
Лекция 25. Строки. Префикс- и Z-функции. Алгоритм Кнута-Мориса-Пратта. Бор. Алгоритм Ахо-Корасик.
Лекция 26. Строки. Суффиксные массивы. Задача LCP. Алгоритм Касаи. Разреженные таблицы.