Subject · Information security
Алгоритмы и структуры данныхTopics
Topic plan
The subject's topics and the learning outcomes attached to each one.
1. Введение в алгоритмы и структуры данных. алгоритмически неразрешимые задачи
LectureВ рамках данной темы изучаются основные понятия алгоритмов и структур данных, их назначение, свойства и роль в решении вычислительных задач. рассматриваются понятия конечности, определённости, эффективности и корректности алгоритмов. также изучаются алгоритмически неразрешимые задачи, ограничения вычислительных методов и примеры задач, для которых не существует универсального алгоритма решения.
2. Структуры данных
LectureВ рамках данной темы изучаются основные структуры данных и способы их организации в памяти компьютера. рассматриваются линейные и нелинейные структуры данных, включая массивы, связные списки, стеки, очереди, деревья и графы. изучаются основные операции над структурами данных, особенности их реализации и выбор подходящей структуры в зависимости от поставленной задачи.
3. Оптимизация и параллелизация алгоритмов
LectureВ рамках данной темы изучаются методы повышения эффективности алгоритмов и программных решений. рассматриваются временная и пространственная сложность алгоритмов, выявление узких мест и методы оптимизации вычислений. также изучаются основные принципы параллелизации алгоритмов, распределения вычислительных задач и использования параллельных вычислений для сокращения времени выполнения.
4. Подходы к построению алгоритмов
LectureВ рамках данной темы изучаются основные подходы и стратегии разработки алгоритмов. рассматриваются декомпозиция задач, метод «разделяй и властвуй», итеративный и рекурсивный подходы, а также другие методы построения эффективных алгоритмических решений. особое внимание уделяется выбору подходящего подхода в зависимости от структуры и требований решаемой задачи.
5. Алгоритмы сортировки и поиска
LectureВ рамках данной темы изучаются основные алгоритмы сортировки и поиска данных. рассматриваются алгоритмы пузырьковой сортировки, сортировки выбором, сортировки вставками, быстрой сортировки и сортировки слиянием. также изучаются линейный и бинарный поиск, условия их применения и сравнительный анализ эффективности различных алгоритмов по временной и пространственной сложности.
6. Жадные алгоритмы. динамическое программирование
LectureВ рамках данной темы изучаются два основных подхода к решению оптимизационных задач: жадные алгоритмы и динамическое программирование. рассматриваются принципы выбора локально оптимального решения в жадных алгоритмах и условия, при которых такой подход приводит к глобально оптимальному результату. изучаются разбиение задачи на подзадачи, сохранение промежуточных результатов и построение решения с использованием методов динамического программирования.
7. Алгоритмы на графах. алгоритмы поиска кратчайшего пути
LectureВ рамках данной темы изучаются основные понятия теории графов и алгоритмы обработки графовых структур. рассматриваются ориентированные и неориентированные графы, вершины, рёбра, пути и веса. изучаются алгоритмы поиска кратчайшего пути, включая алгоритм дейкстры и другие методы, а также условия их применения и анализ эффективности при решении задач маршрутизации и поиска оптимальных путей.
8. Пошаговая демонстрация DFS и BFS
LectureВ рамках данной темы подробно изучаются алгоритмы обхода графов в глубину (dfs — depth-first search) и в ширину (bfs — breadth-first search). рассматривается пошаговый процесс выполнения каждого алгоритма, порядок посещения вершин, использование стеков и очередей, а также формирование дерева обхода. проводится практическая демонстрация работы DFS и BFS на различных графах и сравниваются области применения, преимущества и временная сложность данных алгоритмов.