Бакалавриат
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. Корневая оптимизация