1. Сортировки. Рассматриваются вопросы сортировки: быстрая, сортировка слиянием, устойчивость сортировки, цифровая сортировка. Списки, операции с элементами массива.
2. Поиск в ширину. Алгоритмы поиска в ширину. Рассматриваются подвешенные и двоичные деревья. Пример решения задачи нахождения самого длинного пути.
3. Графы. Задача максимальных или минимальных остовных деревьев. Дается алгоритм поиска минимального остовного дерева. Алгоритм Прима. Рассматриваются другие алгоритмы нахождения минимального остовного дерева.
4. Матрицы. Поиск кратчайших путей в графах. Матрицы и операции с ними. Числа Фибоначчи. Дается алгоритм поиска кратчайших путей в графах. Алгоритм Форда-Беллмана. Алгоритм Флойда.
5. Поиск в глубину и его применение. Рассматриваются эйлеровы пути и циклы. Поиск в глубину. Неориентированные графы.
6. Паросочетания в двудольном графе. Рассматриваются независимые множества, паросочетания, вершинные покрытия. Даются определения, приводятся способы решения различных задач, рассматривается алгоритм Куна.
7. Динамическое программирование. Дается сравнение динамического программирования с перебором. Примеры решения различных задач с применением динамического программирования.
8. Простейшие геометрические объекты. Определения простейших геометрических объектов, операции с ними. Рассматриваются примеры пересечения прямых. Окружности.
9. Строки. Определения, алгоритм Кнута-Морриса-Пратта. Бор: Базовые операции. Хэш.
10. Отрезки. Рассматриваются операции при наличии обновлений на отрезке, построение дерева отрезков, подсчет суммы чисел на отрезке.
11. Задачи на отрезках. Рассматриваются задачи на отрезках, построение дерева отрезков, подсчет сумм чисел на отрезке. Решение задач.
Journal information