Проектирование эффективных алгоритмов

Содержание самостоятельной работы

Модели вычислений
Решение задач на реализацию функций посредством  РАМ, неветвящихся программ и деревьев сравнений.
Базовые структуры данных и основные методы разработки эффективных алгоритмов
Решение задач по оценке сложности рекурсивных алгоритмов, сравнению скорости роста функций и по разработке алгоритмов методом динамического программирования.
Сортировка и поиск k-ого наименьшего элемента.
Решение задач на прокрутку алгоритмов сортировки и поиска к-го наименьшего, на анализ сложности алгоритмов и разработку алгоритмов.
Задачи поиска. Метод расстановки (хеширование)
Решение задач на алгоритмы хеширования.
Задачи поиска и работа с множествами
Решение задач на алгоритмы работы со множествами.
Алгоритмы на графах
Решение задач на анализ, применение и разработку алгоритмов на графах.
Умножение матриц и связанные задачи
Решение задач на анализ алгоритмов умножения матриц и их применение.
Алгоритмы вычислительной геометрии
Решение задач на анализ, построение и применение алгоритмов вычислительной геометрии.
Алгоритмы на строках
Решение задач на анализ, построение и применение алгоритмов работы со строками.
Синтез программ и базис функциональных зависимостей
Решение задач
Обзор абстрактной сложности вычислений
Решение задач
NP-полные задачи.
Задачи на анализ переборных задач, доказательство NP-полноты и построение приближенных алгоритмов.