• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

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

2026/2027
Учебный год
RUS
Обучение ведется на русском языке
8
Кредиты

Программа дисциплины

Аннотация

Дисциплина "Алгоритмы и структуры данных" знакомит студентов с базовыми алгоритмами, теорий сложности, а также структурами данных. В курсе рассматриваются вопросы поиска данных, их хранения, построение, анализ алгоритмов и их использование для эффективного решения разнообразных задач.
Цель освоения дисциплины

Цель освоения дисциплины

  • Знакомство с существующими алгоритмами для решения различных задач
  • Знакомство с существующими структурами данных и их основными операциями
  • Получение навыков проектирования, анализа и тестирования алгоритмов
Планируемые результаты обучения

Планируемые результаты обучения

  • Доказывать оценки сложности алгоритмов
  • Доказывать оценки сложности алгоритмов поиска
  • Доказывать оценки сложности алгоритмов сортировки
  • Доказывать сложность алгоритмов обхода графов
  • Доказывать сложность алгоритмов поиска в тексте
  • Доказывать сложность алгоритмов поиска кратчайших путей
  • Доказывать сложность основных операций с массивами, связными списками, стеками, очередями
  • Объяснять и и уметь реализовывать основные операции с массивами, связными списками, стеками, очередями
  • Объяснять и уметь реализовывать алгоритмы обхода графов
  • Описывать и уметь реализовывать алгоритмы поиска
  • Описывать и уметь реализовывать алгоритмы поиска в тексте
  • Описывать и уметь реализовывать алгоритмы поиска кратчайших путей
  • Описывать и уметь реализовывать алгоритмы сортировки
  • Описывать работу метода разделяй и властвуй, алгоритмов динамического программирования и жадных алгоритмов
  • Описывать различные варианты построения и использования графовых моделей
  • Определять сложность алгоритмов по их описанию
  • Разрабатывать алгоритмы в соответствии с рассмотренными парадигмами для решения задач
  • Формулировать задачи о кратчайших путях в различных постановках
  • Формулировать задачи о поиске в тексте, поиске подстроки в строке
  • Формулировать задачу поиска
  • Формулировать задачу сортировки
  • Формулировать понятие алгоритма, программы.
  • Формулировать понятие графа, представления графа;
  • Формулировать понятие переменной, массива.
  • Формулировать понятия массива, связного списка, стека, очереди и их вариаций
  • Формулировать понятия пространственной и временной сложности алгоритма.
  • Анализировать алгоритмы, оценивать их эффективность для различных входных данных и ситуаций, а также определять скорости роста алгоритмов.
  • Реализовывать и использовать динамические структуры данных: списки, стеки и очереди
  • Объяснять концепцию разреженных данных и массивов, а также описывать различные форматы их хранения, включая разреженный строчный и разреженный ленточный форматы.
  • Объяснять принципы рекурсивных алгоритмов и применять методы рекурсии для решения типовых задач.
  • Описывать и применять простые алгоритмы поиска, включая полный перебор и его варианты, а также поиск в статических таблицах.
  • Классифицировать простые алгоритмы сортировки и описывать принципы работы сортировки вставками, пузырьковой сортировки и сортировки обменами.
  • Объяснять принципы работы и применять классические алгоритмы шифрования, такие как метод Цезаря, Трисемуса, Гронсфельда, Плейфера и Уитстона.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение в алгоритмы. Понятие алгоритма и программы. Переменные, массивы.
  • Задача сортировки. Простые алгоритмы сортировки.
  • Задача сортировки. Эффективные алгоритмы сортировки.
  • Сложность алгоритмов.
  • Алгоритмы поиска.
  • Базовые структуры данных.
  • Понятие графа. Алгоритмы на графах.
  • Задачи о кратчайших путях. Алгоритмы нахождения кратчайших путей в графах.
  • Алгоритмические парадигмы.
  • Строковые алгоритмы
  • Введение в алгоритмы и структуры данных.
  • Анализ алгоритмов.
  • Динамические структуры данных.
  • Разреженные массивы. Разреженные данные. Разреженный строчный формат хранения данных, разреженный ленточный формат хранения данных
  • Введение в рекурсивные алгоритмы.
  • Простые алгоритмы поиска. Полный перебор, его варианты. Поиск в статических таблицах
  • Простые алгоритмы сортировки. Классификация алгоритмов сортировки. Сортировка вставками, пузырьковая и обменами.
  • Классические алгоритмы шифрования. Метод Цезаря, Трисемуса, Гронсфельда, Плейфера, Уитстона.
  • Рекурсивные алгоритмы. Прохождения деревьев в ширину и глубину. Решение с помощью рекурсии головоломок и игр.
  • Методы поиска. Динамические таблицы. АВЛ деревья, В деревья, декартовые деревья.
  • Методы хеширования. Идеальное хеширование. Алгоритмы хэширования. Методы разрешения коллизий. Фильтры Блюма.
  • Алгоритмы сортировки. Быстрая сортировка. Пирамидальная сортировка, внешняя сортировка. Лексикографическая сортировка. Медианы и порядковые статистки.
  • Алгоритмы на графах. Алгоритмы потоков в сетях, PageRank. Раскраска карт.
  • Жадные алгоритмы. Методы решения задач с помощью жадных алгоритмов.
  • Алгоритмы оптимизации. Генетический алгоритм, метод отжига.
Элементы контроля

Элементы контроля

  • неблокирующий Экзамен
  • неблокирующий Экзамен
  • блокирующий Лабораторная работа
  • неблокирующий Тест
Промежуточная аттестация

Промежуточная аттестация

  • 2026/2027 2nd module
    0.1 * Лабораторная работа + 0.2 * Тест + 0.7 * Экзамен
  • 2026/2027 4th module
    0.1 * Лабораторная работа + 0.7 * Экзамен + 0.1 * Тест
Список литературы

Список литературы

Рекомендуемая основная литература

  • 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
  • Вирт, Н. Алгоритмы и структуры данных. Новая версия для Оберона : учебное пособие / Н. Вирт. — Москва : ДМК Пресс, 2010. — 272 с. — ISBN 978-5-94074-584-6. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1261 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Гладков Л.А., Курейчик В.В., Курейчик В.М. и др. - Генетические алгоритмы - 978-5-9221-0510-1 - Физматлит - 2010 - https://znanium.ru/catalog/document?id=175565 - 175565 - ZNANIUM
  • Информационная чувствительность компьютерных алгоритмов, Петрушин, В. Н., 2010
  • Седжвик, Р. Алгоритмы на С++ : учебное пособие / Р. Седжвик. — 2-е изд. — Москва : ИНТУИТ, 2016. — 1772 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100565 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Совершенный алгоритм. Графовые алгоритмы и структуры данных - 978-5-4461-1272-2 - Рафгарден Тим - 2019 - Санкт-Петербург: Питер - https://ibooks.ru/products/361846 - 361846 - iBOOKS

Рекомендуемая дополнительная литература

  • Алгоритмы : построение и анализ, пер. с англ., 3-е изд., 1323 с., Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К., 2018

Авторы

  • Асеева Наталья Владимировна