Алгоритмы и структуры данных
-
Вектор, стек, очередь. Применение и способы реализации.
-
Дек, очередь с приоритетом. Применение и способы реализации.
-
Хеширование. Хеш-функции. Фильтр Блума. Контроль целостности данных.
-
Множество и отображение. Применение и реализация на основе хеш-таблиц.
-
Деревья. Разновидности, свойства, способы записи.
-
Деревья. Обход, представление в программе. Деревья поиска.
-
Самобалансирующиеся деревья. АВЛ-дерево.
-
Самобалансирующиеся деревья. Красно-чёрное дерево.
-
Самобалансирующиеся деревья. B-дерево.
-
Динамическое программирование. Задача о наибольшей общей подпоследовательности. Задача о редакционном расстоянии.
-
Динамическое программирование. Целочисленная задача о рюкзаке. Задача о перемножении набора матриц.
-
Динамическое программирование. Задача о триангуляции выпуклого многоугольника. Задача о замощении площадки костяшками домино.
-
Графы. Определения. Свойства. Представление в программе.
-
Обход графа. Топологическая сортировка.
-
Кратчайшие пути в графе. Алгоритм Дейкстры. Алгоритм Беллмана-Форда. Алгоритм Флойда-Уоршелла.
-
Минимальное остовное дерево графа. Алгоритм Прима. Алгоритм Крускала.
-
Системы непересекающихся множеств. Применение и способы реализации.
-
Кодирование и сжатие данных. Алфавитное кодирование. Префиксный код. Код Хаффмена.
-
Алгоритмы семейства LZ: LZ77, LZ78, LZW, LZMA, DEFLATE.
-
Преобразование Барроуза-Уилера. Использование для сжатия данных.