Алгоритмы и структуры данных
Лекции
- Лекция 1. Определение и свойства алгоритмов
- Лекция 2. Сложность алгоритмов
- Лекция 3. Методы разработки и анализа алгоритмов
- Лекция 4. Структуры данных и их классификация
- Лекция 5. Простые алгоритмы сортировки
- Лекция 6. Продвинутые алгоритмы сортировки
- Лекция 7. Стек и очередь на массиве
- Лекция 8. Связанные списки (1)
- Лекция 9. Связанные списки (2)
- Лекция 10. Бинарные деревья поиска
- Лекция 11. AVL-деревья
- Лекция 12. Красно-черные деревья
- Лекция 13. Хеш-таблицы
- Лекция 14. Алгоритмы на графах
Конспекты практических занятий
- Итерация и рекурсия
- Алгоритмы на массивах
- Стек на массиве. Вычисление арифметических выражений
- Очередь на массиве. Кольцевой буфер. Очередь с приоритетом
- Стек и очередь на списке
Самостоятельные задания
Замечание
Перед началом выполнения заданий необходимо завести (если нет) бесплатный аккаунт на сайте https://github.com
Инструкции к выполнению заданий находятся здесь
Текущая информация по курсу (+ список веток): https://github.com/NNTU-CS/ADS-2025.git
Название | Задание | Репозиторий | Срок выполнения |
---|---|---|---|
ADS-0 | Задание 0. Алгоритм Евклида | ADS-0 | по 31.05 |
ADS-1 | Задание 1. Библиотека простых чисел | ADS-1 | по 03.03 |
ADS-2 | Задание 2. Реализация численных методов для трансцедентных функций | ADS-2 | по 16.03 |
ADS-3 | Задание 3. Исследование последовательности Коллатца | ADS-3 | по 30.03 |
ADS-4 | Задание 4. Подсчет всех пар целых чисел в массиве | ADS-4 | по 06.04 |
ADS-5 | Задание 5. Вычисление арифметического выражения | ADS-5 | по 20.04 |
ADS-6 | Задание 6. Реализация очереди с приоритетами на связанном списке | ADS-6 | по 04.05 |
ADS-7 | Задание 7. Задача про круговой поезд | ADS-7 | по 18.05 |
ADS-8 | Задание 8. Построение и обход бинарного дерева | ADS-8 | по 01.06 |
ADS-8 | Задание 9. Построение и использование дерева вариантов | ADS-9 | по 08.06 |
Вопросы к экзамену
Информация об экзаменах
Дата | Время | Группа | Мероприятие | Аудитория |
---|---|---|---|---|
14.06 (Сб) | 15:30 | ИСТ-4-1 | (кнс) | [6326] |
15.06 (Вс) | 09:00 | ИСТ-4-1 | (экз) | [6326] |
15.06 (Вс) | 15:00 | ИСТ-1-1 | (кнс) | [6326] |
16.06 (Пн) | 09:00 | ИСТ-1-1 | (экз) | [6320] |
16.06 (Пн) | 15:00 | ИСТ-2 | (кнс) | [6320] |
17.06 (Вт) | 09:00 | ИСТ-2 | (экз) | [6320] |
18.06 (Ср) | 14:00 | ИСТ-1-2 | (кнс) | [6320] |
18.06 (Ср) | 15:00 | ИСТ-4-2 | (кнс) | [6320] |
19.06 (Чт) | 09:00 | ИСТ-1-2,4-2 | (экз) | [6320] |
19.06 (Чт) | 15:00 | ИСТ-3 | (кнс) | [6320] |
20.06 (Пт) | 09:00 | ИСТ-3 | (экз) | [6320] |
Справочная информация по оформлению кода
Список литературы
- Кормен Т.,Лейзерсон Ч., Ривест Р., Алгоритмы: построение и анализ, 3-е издение. Вильямс, 2019.
- Хайнеман Джордж, Поллис Гари. Алгоритмы. Справочник с примерами на C, C++, Java и Python. Вильямс, 2017.
- Скиена Стивен С. Алгоритмы. Руководство по разработке. БХВ-Петербург, 2018.
- Кормен Томас Х. Алгоритмы. Вводный курс. Диалектика-Вильямс, 2020.
- Рафгарден Тим. Совершенный алгоритм. Графовые алгоритмы и структуры данных. Питер, 2022.
- Рафгарден Тим. Совершенный алгоритм. Алгоритмы для NP-трудных задач. Прогресс книга, 2021.
- Рафгарден Тим. Совершенный алгоритм. Основы. Питер, 2019.
- Берд Ричард. Жемчужины проектирования алгоритмов. Функциональный подход. ДМК Пресс. 2015.
- Стюарт Том. Теория вычислений для программистов. ДМК Пресс, 2016.
- Паронджанов Владимир. Учись писать, читать и понимать алгоритмы. ДМК Пресс, 2016.
- Бхаргава Адитья. Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих. Питер, 2019.
- Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы. МЦНМО 2014
- Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы. Вильямс, 2016.
- Ахо, Ульман, Хопкрофт: Разработка и анализ компьютерных алгоритмов. Вильямс, 2021.
- Круз Р.Л. Структуры данных и проектирование программ. М.: Бином, 2017.
- Д. Кнут. Искусство программирования Т.1-3,Вильямс,2019
- Седжвик Р. Алгоритмы на C++. Вильямс, 2019.
- Топп У., Форд У. Структуры данных в С++. М.: Бином, 1999.