Бакалавриат
2026/2027



Алгоритмы и структуры данных
ID 1220198
Статус:
Курс обязательный (Программная инженерия (очно-заочное обучение))
Когда читается:
1-й курс, 1 модуль
Охват аудитории:
для своего кампуса
Преподаватели:
Зотов Евгений Максимович
Язык:
русский
Кредиты:
3
Контактные часы:
24
Программа дисциплины
Аннотация
Дисциплина "Алгоритмы и структуры данных" знакомит студентов с базовыми алгоритмами, теорий сложности, а также структурами данных. В курсе рассматриваются вопросы поиска данных, их хранения, построение, анализ алгоритмов и их использование для эффективного решения разнообразных задач.
Цель освоения дисциплины
- Знакомство с существующими алгоритмами для решения различных задач
- Знакомство с существующими структурами данных и их основными операциями
- Получение навыков проектирования, анализа и тестирования алгоритмов
Планируемые результаты обучения
- Доказывать оценки сложности алгоритмов
- Доказывать оценки сложности алгоритмов поиска
- Доказывать оценки сложности алгоритмов сортировки
- Доказывать сложность алгоритмов обхода графов
- Доказывать сложность алгоритмов поиска в тексте
- Доказывать сложность алгоритмов поиска кратчайших путей
- Доказывать сложность основных операций с массивами, связными списками, стеками, очередями
- Объяснять и и уметь реализовывать основные операции с массивами, связными списками, стеками, очередями
- Объяснять и уметь реализовывать алгоритмы обхода графов
- Описывать и уметь реализовывать алгоритмы поиска
- Описывать и уметь реализовывать алгоритмы поиска в тексте
- Описывать и уметь реализовывать алгоритмы поиска кратчайших путей
- Описывать и уметь реализовывать алгоритмы сортировки
- Описывать работу метода разделяй и властвуй, алгоритмов динамического программирования и жадных алгоритмов
- Описывать различные варианты построения и использования графовых моделей
- Определять сложность алгоритмов по их описанию
- Разрабатывать алгоритмы в соответствии с рассмотренными парадигмами для решения задач
- Формулировать задачи о кратчайших путях в различных постановках
- Формулировать задачи о поиске в тексте, поиске подстроки в строке
- Формулировать задачу поиска
- Формулировать задачу сортировки
- Формулировать понятие алгоритма, программы.
- Формулировать понятие графа, представления графа;
- Формулировать понятие переменной, массива.
- Формулировать понятия массива, связного списка, стека, очереди и их вариаций
- Формулировать понятия пространственной и временной сложности алгоритма.
- Анализировать алгоритмы, оценивать их эффективность для различных входных данных и ситуаций, а также определять скорости роста алгоритмов.
- Реализовывать и использовать динамические структуры данных: списки, стеки и очереди
- Объяснять концепцию разреженных данных и массивов, а также описывать различные форматы их хранения, включая разреженный строчный и разреженный ленточный форматы.
- Объяснять принципы рекурсивных алгоритмов и применять методы рекурсии для решения типовых задач.
- Описывать и применять простые алгоритмы поиска, включая полный перебор и его варианты, а также поиск в статических таблицах.
- Классифицировать простые алгоритмы сортировки и описывать принципы работы сортировки вставками, пузырьковой сортировки и сортировки обменами.
- Объяснять принципы работы и применять классические алгоритмы шифрования, такие как метод Цезаря, Трисемуса, Гронсфельда, Плейфера и Уитстона.
Содержание учебной дисциплины
- Введение в алгоритмы. Понятие алгоритма и программы. Переменные, массивы.
- Задача сортировки. Простые алгоритмы сортировки.
- Задача сортировки. Эффективные алгоритмы сортировки.
- Сложность алгоритмов.
- Алгоритмы поиска.
- Базовые структуры данных.
- Понятие графа. Алгоритмы на графах.
- Задачи о кратчайших путях. Алгоритмы нахождения кратчайших путей в графах.
- Алгоритмические парадигмы.
- Строковые алгоритмы
- Введение в алгоритмы и структуры данных.
- Анализ алгоритмов.
- Динамические структуры данных.
- Разреженные массивы. Разреженные данные. Разреженный строчный формат хранения данных, разреженный ленточный формат хранения данных
- Введение в рекурсивные алгоритмы.
- Простые алгоритмы поиска. Полный перебор, его варианты. Поиск в статических таблицах
- Простые алгоритмы сортировки. Классификация алгоритмов сортировки. Сортировка вставками, пузырьковая и обменами.
- Классические алгоритмы шифрования. Метод Цезаря, Трисемуса, Гронсфельда, Плейфера, Уитстона.
- Рекурсивные алгоритмы. Прохождения деревьев в ширину и глубину. Решение с помощью рекурсии головоломок и игр.
- Методы поиска. Динамические таблицы. АВЛ деревья, В деревья, декартовые деревья.
- Методы хеширования. Идеальное хеширование. Алгоритмы хэширования. Методы разрешения коллизий. Фильтры Блюма.
- Алгоритмы сортировки. Быстрая сортировка. Пирамидальная сортировка, внешняя сортировка. Лексикографическая сортировка. Медианы и порядковые статистки.
- Алгоритмы на графах. Алгоритмы потоков в сетях, PageRank. Раскраска карт.
- Жадные алгоритмы. Методы решения задач с помощью жадных алгоритмов.
- Алгоритмы оптимизации. Генетический алгоритм, метод отжига.
Список литературы
Рекомендуемая основная литература
- C#. Алгоритмы и структуры данных : учеб. пособие, Тюкачёв, Н. А., 2018
- Cormen, T. H. (2009). Introduction to Algorithms (Vol. 3rd ed). Cambridge, Mass: The MIT Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=343613
- Cormen, T. H., Leiserson, C. E., Rivest, R. L., Stein, C. Introduction to Algorithms (3rd edition). – MIT Press, 2009. – 1292 pp.
- Robert Sedgewick, & Kevin Wayne. (2014). Algorithms : Part I. [N.p.]: Addison-Wesley Professional. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1600534
- Алгоритмы : введение в разработку и анализ, Левитин, А. В., 2018
- Алгоритмы ГИС : теория и применение геоинформационных систем и технологий, Сяо, Нинчуань, 2021
- Алгоритмы и структуры данных. Новая версия для Оберона - Вирт Н. - Издательство "ДМК Пресс" - 978-5-94074-584-6 - 2010 - русский - https://e.lanbook.com/book/1261 - ЛАНЬ - 1261
- Алгоритмы на С++ - Седжвик Р. - Национальный Открытый Университет "ИНТУИТ" - - - 2016 - русский - https://e.lanbook.com/book/100565 - ЛАНЬ - 100565
- Гладков Л.А., Курейчик В.В., Курейчик В.М. и др. - Генетические алгоритмы - 978-5-9221-0510-1 - Физматлит - 2010 - https://znanium.ru/catalog/document?id=175565 - 175565 - ZNANIUM
- Информационная чувствительность компьютерных алгоритмов, Петрушин, В. Н., 2010
- Совершенный алгоритм. Графовые алгоритмы и структуры данных - 978-5-4461-1272-2 - Рафгарден Тим - 2019 - Санкт-Петербург: Питер - https://ibooks.ru/products/361846 - 361846 - iBOOKS
Рекомендуемая дополнительная литература
- Алгоритмы : построение и анализ, пер. с англ., 3-е изд., 1323 с., Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К., 2018