Алгоритмы и структуры данных.

Лекции

Лекция 1. Введение. Сложность алгоритмов. Корректность алгоритмов. Сложность операций. Абстракции.

Лекция 2. Рекурсия. Разделяй и властвуй. Основная теорема о рекурсии. Быстрое вычисление степеней.

Лекция 3. Жадные и линейные алгоритмы.

Лекция 4. Сортировка.

Лекция 5. Сортировка. Поиск.

Лекция 6. Специальные деревья.

Лекция 7. Списки и деревья.

Лекция 8. Сбалансированные деревья.

Лекция 9. Хеш-функции.

Лекция 10. Хеш-таблицы.

Лекция 11. Динамическое программирование-1.

Лекция 12. Динамическое программирование-2.

Лекция 13. Графы-1. Представление. Обход BFS, DFS. Топологическая сортрировка.

Лекция 14. Графы-2. Поиск компонент сильной связности. Поиск точек сочленения и мостов. Минимальные остовные деревья. Алгоритм Прима.

Лекция 15. Графы-3. Система непересекающихся множеств. Алгоритм Краскала. Поиск кратчайшего пути-1. Алгоритм Дейкстры.

Лекция 16. Графы-4. Поиск кратчайших путей-2. Потоки. Двудольные графы и паросочетания.

Лекция 17. Числа. Клеточные автоматы. Работа с битами. Простые числа. Решето Эратосфена и решето Аткинса.

Лекция 18. Делимость. Теоремы Ферма и Эйлера. Китайская теорама об остатках. Алгоритм Гарнера. Символ Лежандра. Мультипликативные группы. Алгоритмы Диффи-Хеллмана и RSA.

Лекция 19. Проверка на простоту. Алгоритм Миллера-Рабина. Факторизация. Алгоритм Ро-Полларда.

Лекция 20. Длинная арифметика. Быстрое преобразование Фурье.

Лекция 21. Вычислительная геометрия. Расстояния между объектами. Пересечения. Скалярное и векторное произведения. Простая триангуляция.

Лекция 22. Вычислительная геометрия. Выпуклые оболочки. Алгоритмы Джарвиса, Грэхема, Эндрю. Convex Hull Trick.

Лекция 23. Вычислительная геометрия. Суммы Минковского.

Лекция 24. Вычислительная геометрия. Задача принадлежности. Пересечение полуплоскостей.

Лекция 25. Строки. Префикс- и Z-функции. Алгоритм Кнута-Мориса-Пратта. Бор. Алгоритм Ахо-Корасик.

Лекция 26. Строки. Суффиксные массивы. Задача LCP. Алгоритм Касаи. Разреженные таблицы.

Лекция 27. Решение неполиномиальных задач.