Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Вопросы к экзамену / Структуры данных и алгоритмы 2018

.pdf
Скачиваний:
104
Добавлен:
17.12.2018
Размер:
60.66 Кб
Скачать

Структуры данных и алгоритмы

1.Асимптотические обозначения, сортировка вставкой.

Асимптотические обозначения (O, Ω,Θ).

Теорема о связи O, Ω и Θ.

Свойства O с доказательствами (правило сумм, правило произведений и умножения и добавления константы).

Сортировка вставкой (Inserion Sort).

Оценка времени работы сортировки вставкой.

Доказательство корректности сортировки вставками (с помощью инварианта цикла).

2.Сортировки методом декомпозиции. Линейные сортировки.

Сортировка слиянием (Merge Sort).

Доказательство корректности операции Merge с помощью инварианта цикла.

Точная оценка времени работы сортировки слиянием с помощью рекуррентных соотношений (по индукции).

Точная оценка времени работы сортировки слиянием (интуитивная, стр. 80).

Быстрая сортировка (Quick Sort).

Оценка времени работы быстрой сортировки в лучшем и худшем (интуитивные, стр. 203-204).

Рандомизированный вариант алгоритма быстрой сортировки и его преимущества.

Сортировка подсчетом (Counting Sort) + оценка времени работы.

Устойчивость алгоритмов на примере сортировки подсчетом.

Поразрядная сортировка (Radix Sort) + оценка времени работы.

3.Элементарные структуры данных. Сортировка кучей.

Стеки, очереди, списки (односвязные, двусвязные, циклические) и операции с ними.

Двоичное дерево: терминология (определение, родитель, потомок, предок, глубина, высота и полное дерево).

Определение двоичной кучи и реализация на массиве.

Восстановление свойства невозрастания кучи (Heapify) + оценка времени работы.

Алгоритм создания кучи (Build_Max_Heap) + грубая оценки времени работы.

Точная оценка времени работы Build_Max_Heap (стр. 186-187).

Сортировка кучей (Heap Sort) + оценка времени работы

4.Очередь с приоритетом. Двоичное дерево поиска. Бинарный поиск.

Очередь с приоритетами на основе кучи. Операции в очереди с приоритетами.

Бинарный поиск (Binary Search) + оценка времени работы.

Двоичное дерево поиска.

Центрированный, прямой и обратный обходы двоичного дерева поиска.

Оценка времени работы центрированного обхода двоичного дерева поиска.

Операции, выполняемые с бинарными деревьями поиска (с пояснением корректности и оценкой времени работы):

i.поиск элемента по ключу;

ii.поиск минимума и максимума;

iii.поиск предшествующего и последующего элементов;

iv.вставка элемента в дерево;

v.удаление элемента из дерева.

Зачем нужны сбалансированные деревья поиска. Привести пример какого-либо сбалансированного дерева поиска и описать работу вставки

иудаления.

5.Хеш-таблицы.

Таблицы с прямой адресацией.

Хеш-таблицы. Разрешение коллизий с помощью цепочек.

Хеш-таблицы с закрытой адресацией: метод деления и метод умножения.

Хеш-таблицы с открытой адресацией: вставка, поиск и удаление.

Линейное исследование, квадратичное исследование, двойное хеширование.

Сравнительный анализ качества хеширования в этих подходах на основе числа исследуемых последовательностей.

6.Графы: основные определения. Поиск в ширину. Поиск в глубину. Топологическая сортировка.

Определения: ориентированный и неориентированный граф, входящая и исходящая степень вершины, полный граф, сильно связный граф, компоненты связности.

Списки смежности (структура, объем памяти, время доступа к ребру, для каких графов эффективнее)

Матрица смежности (структура, объем памяти, время доступа к ребру, для каких графов эффективнее)

Поиск в ширину (BFS). Время работы BFS.

Поиск в глубину (DFS). Время работы DFS.

Поиск циклов в графе.

Поиск компонент связности в неориентированном графе.

Классификация ребер графа.

Топологическая сортировка (Topological Sort).

Доказательство корректности топологической сортировки.

7.Алгоритмы поиска кратчайших путей в графах.

Определение кратчайшего пути.

Лемма о частичных путях (подпутях) кратчайшего пути (стр. 665).

Циклы нулевого, положительного и отрицательного веса и их влияние на поиск кратчайших путей в графе.

Ослабление ребра.

Свойства кратчайших путей и ослаблений (стр. 671).

Алгоритм Беллмана-Форда + оценка времени работы.

Алгоритм поиска кратчайших путей в ориентированном ациклическом графе + оценка времени работы.

Алгоритм Дейкстры (с кучей и с массивом) + оценка времени работы.

Кратчайшие пути между всеми парами вершин: алгоритм Флойда-Воршалла + оценка времени работы.

8.Поиск подстрок.

Простейший алгоритм поиска подстрок.

Полиномиальная хеш-функция. Итеративное вычисление хеш-функции и пересчет при сдвиге.

Алгоритм Рабина-Карпа + оценка времени работы.

Префикс-функция (алгоритм, время работы).

Алгоритм Кнута-Морриса-Пратта + время работы.

Детерминированный конечный автомат (ДКА). Определения и построение.

Алгоритм поиска подстрок с помощью ДКА.