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

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

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

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

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.Поиск подстрок.

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

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

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

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

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

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

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