• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2025/2026

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

Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Статус: Курс обязательный (Прикладная математика и информатика)
Когда читается: 1-й курс, 2, 4 модуль
Охват аудитории: для всех кампусов НИУ ВШЭ
Преподаватели: Богданов Сергей Юрьевич, Гарницкий Марк Антонович, Горбунова Ольга Константиновна, Густокашин Михаил Сергеевич, Кисляков Иван Дмитриевич, Лоскутников Станислав Артурович, Мамаев Алексей Александрович, Мамай Игорь Борисович, Мануйленко Никита Сергеевич, Никитин Богдан Сергеевич, Панькова Марина Геннадьевна, Петров Андрей Иванович, Плетенев Борис Александрович, Самоненко Илья Юрьевич, Хайбулин Даниэль Ильвирович, Шинкарев Елисей Сергеевич, Шнипов Антон Александрович
Язык: русский
Кредиты: 10
Контактные часы: 136

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

Аннотация

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

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

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

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

  • 1. Алгоритмы и их сложность
  • 2. Стек. Очередь. Дек
  • 3. Сортировки
  • 4. Куча. Двоичный поиск
  • 5. Быстрая сортировка. Сортировка подсчетом и поразрядная. Хеш-таблицы
  • 6. Два указателя. Сортировка событий
  • 7. Динамическое программирование. Классические задачи
  • 8. Двумерная динамика. Динамика по подстрокам
  • 9. Динамическое программирование. Задача о рюкзаке. Жадные алгоритмы
  • 10. Хеши для строк
  • 11. Обход в глубину: связность, циклы, двудольность, топологическая сортировка, мосты, точки сочленения
  • 12. Обход в ширину
  • 13. Алгоритм Дейкстры
  • 14. Алгоритмы Форда-Беллмана и Флойда
  • 15. Система непересекающихся множеств, остовные деревья
  • 16. Двоичные деревья поиска, балансировка
  • 17. Декартово дерево
  • 18. Дерево отрезков
  • 19. Префиксные суммы, разреженные таблицы и дерево Фенвика
  • 20. LCA
  • 21. Арифметика и теория чисел
  • 22. Комбинаторные объекты
  • 23. Перебор
  • 24. Корневая оптимизация
Элементы контроля

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

  • неблокирующий Работа на семинаре
  • неблокирующий Домашнее задание
  • неблокирующий Контрольная работа
  • неблокирующий Экзамен
Промежуточная аттестация

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

  • 2025/2026 2nd module
    0.2 * Контрольная работа + 0.4 * Экзамен + 0.1 * Работа на семинаре + 0.3 * Домашнее задание
  • 2025/2026 4th module
    0.3 * Домашнее задание + 0.2 * Контрольная работа + 0.1 * Работа на семинаре + 0.4 * Экзамен

Авторы

  • Алиева Эльмира Махир Кызы
  • Фисенко Анна Сергеевна