Алексей Владыкин


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

  1. Вектор, стек, очередь. Применение и способы реализации.

  2. Дек, очередь с приоритетом. Применение и способы реализации.

  3. Хеширование. Хеш-функции. Фильтр Блума. Контроль целостности данных.

  4. Множество и отображение. Применение и реализация на основе хеш-таблиц.

  5. Деревья. Разновидности, свойства, способы записи.

  6. Деревья. Обход, представление в программе. Деревья поиска.

  7. Самобалансирующиеся деревья. АВЛ-дерево.

  8. Самобалансирующиеся деревья. Красно-чёрное дерево.

  9. Самобалансирующиеся деревья. B-дерево.

  10. Динамическое программирование. Задача о наибольшей общей подпоследовательности. Задача о редакционном расстоянии.

  11. Динамическое программирование. Целочисленная задача о рюкзаке. Задача о перемножении набора матриц.

  12. Динамическое программирование. Задача о триангуляции выпуклого многоугольника. Задача о замощении площадки костяшками домино.

  13. Графы. Определения. Свойства. Представление в программе.

  14. Обход графа. Топологическая сортировка.

  15. Кратчайшие пути в графе. Алгоритм Дейкстры. Алгоритм Беллмана-Форда. Алгоритм Флойда-Уоршелла.

  16. Минимальное остовное дерево графа. Алгоритм Прима. Алгоритм Крускала.

  17. Системы непересекающихся множеств. Применение и способы реализации.

  18. Кодирование и сжатие данных. Алфавитное кодирование. Префиксный код. Код Хаффмена.

  19. Алгоритмы семейства LZ: LZ77, LZ78, LZW, LZMA, DEFLATE.

  20. Преобразование Барроуза-Уилера. Использование для сжатия данных.