
Вопросы по дисциплине «Построение и анализ алгоритмов» для студентов II курса механико-математического факультета (заочное отделение)
-
Понятие информации. Кодирование информации. Требования, предъявляемые к кодированию информации при программировании.
-
Алгоритм. Трудоемкость алгоритмов: наилучший случай, наихудший случай, трудоемкость в среднем, усредненная оценка трудоемкости группы операций.
-
Асимптотики трудоемкости алгоритмов
,
,
. Полиномиальные и неполиномиальные алгоритмы. Примеры.
-
Полимониальная сводимость алгоритмов.
-трудные и
-полные задачи. Примеры.
-
Стратегии решения задач. Принцип «разделяй и властвуй», динамическое программирование, градиентные алгоритмы. Примеры решения задач с использованием данных методов и их трудоемкость.
-
Алгоритмы сортировки массива данных: пузырьковая (bubble sort), быстрая (quick sort), слиянием (merge sort), подсчетом (сounting sort). Сложность этих алгоритмов.
-
Структуры данных. Массивы, односвязные списки, стеки, очереди. Реализация базовых операций над ними и их трудоемкость в наихудшем случае.
-
Организация поиска. Бинарный и интерполяционный поиск в отсортированном массиве. Их трудоемкость в наихудшем случае.
-
Организация поиска. Бинарное дерево поиска. Базовые операции над ним и их трудоемкость в наихудшем случае.
-
Хэш-таблицы и хэш-функции. Коллизии. Методы разрешения коллизий. Открытое и закрытое хэширование.
-
Поиск в ширину и задачи им решаемые.
-
Поиск в глубину.
-
Алгоритм нахождения эйлерова цикла.
-
Поиск минимального остовного дерева. Алгоритм Прима, его трудоемкость в наихудшем случае.
-
Поиск минимального остовного дерева. Алгоритм Краскала, его трудоемкость в наихудшем случае.
-
Поиск кратчайшего пути в графе. Алгоритм Дейкстры.
-
Алгоритм Беллмана–Форда поиска кратчайшего пути во взвешенном графе.
-
Алгоритм Флойда–Уоршелла поиска кратчайшего пути между всеми вершинами взвешенного ориентированного графа.
-
Поиск подстроки в строке. Алгоритм Бойера–Мура, его трудоемкость в наихудшем случае.
-
Поиск подстроки в строке. Алгоритм Кнута–Морриса–Пратта, его трудоемкость в наихудшем случае.
Программы, которые нужно написать к экзамену
-
Сортировки: пузырьковая (bubble sort), быстрая (quick sort), слиянием (merge sort).
-
Поиск в ширину и в глубину.
-
Бинарное дерево поиска (в нем обязательно реалировать поиск, встаку, удаление, просмотр).
-
Алгоритмы кратчайшего пути в графе: Дейкстры и Флойда–Уоршелла.
-
Алгоритм Кнута–Морриса–Пратта.
Список рекомендуемой литературы
-
Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. –М.: Мир, 1979.
-
Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. – М.: Мир, 1982.
-
Кормен Т. Х., Лейзерсон Ч. И., Ривест Р. Л., Штайн К. Алгоритмы. Построение и анализ. – М.: Вильямс, 2005.
-
Кнут Д. Искусство программирования для ЭВМ. В 3 т. – М.: Мир, 1978.
Координаты электронного почтового ящика с книгами и вопросами
Логин: mmf.web@mail.ru
Пароль: mmf2011