поиск, вещественные поиски, интерполяционный поиск. Сортировка слиянием. Сортировка подсчетом. Оптимальность O (NlogN) сортировок
Динамическое программирование. Задачи о кузнечике и черепашке. Подсчёт количества двоичных последовательностей без K единиц подряд. Задачи поиска наибольшей общей и возрастающей подпоследовательностях. Задачи о рюкзаке: непрерывная, дискретная, общая
Рекурсивный перебор. Генерация комбинаторных объектов: следующий объект, объект по номеру, номер по объекту
Хеширование. Полиномиальное хеширование. Парадокс дней рождений
Графы. Терминология. Способы хранения. Обход в ширину. Обход в глубину. Алгоритмы Дейкстры, Флойда. Поиск отрицательных циклов
Алгоритмы на строках. Префикс-функция. Z-функция. Алгоритм Кнута-Морриса-Пратта
Жадные алгоритмы
Программа курса