Алгоритмы и структуры данных 1 основной поток 2019/202 — различия между версиями
Gpogudin (обсуждение | вклад) (лекция 12) |
Gpogudin (обсуждение | вклад) (лекция 12) |
||
Строка 28: | Строка 28: | ||
11. '''3 декабря.''' Сортировка: сложность слияния, нижняя оценка на comparison-based sorting, qsort без анализа сложности. [https://www.dropbox.com/s/2vhghbel07lomwq/lecture11.ipynb?dl=0 Jupyter] [https://www.dropbox.com/s/83nhsn0qbvpy8dw/lecture11.html?dl=0 Jupyter html] | 11. '''3 декабря.''' Сортировка: сложность слияния, нижняя оценка на comparison-based sorting, qsort без анализа сложности. [https://www.dropbox.com/s/2vhghbel07lomwq/lecture11.ipynb?dl=0 Jupyter] [https://www.dropbox.com/s/83nhsn0qbvpy8dw/lecture11.html?dl=0 Jupyter html] | ||
− | 12. '''5 декабря.''' Графы, поиск в глубину, проверка ацикличности. [https://www.dropbox.com/s/ofujay1s7huz0h7/lecture12.ipynb?dl=0 Jupyter | + | 12. '''5 декабря.''' Графы, поиск в глубину, проверка ацикличности. [https://www.dropbox.com/s/ofujay1s7huz0h7/lecture12.ipynb?dl=0 Jupyter] [https://www.dropbox.com/s/1zfpqu3tczzbhym/lecture12.html?dl=0 Jupyter html] |
+ | Почитать: [http://jeffe.cs.illinois.edu/teaching/algorithms/book/05-graphs.pdf часть 1] [http://jeffe.cs.illinois.edu/teaching/algorithms/book/06-dfs.pdf часть 2] | ||
==Домашние задания== | ==Домашние задания== |
Версия 21:06, 5 декабря 2019
Лекторы: Г.А. Погудин (2-ой модуль) С.А. Объедков (4-ый модуль)
Второй модуль
Лекции
Вторник 10:30 – 11:50, ауд. R404 Четверг 15:10 – 16:30, ауд. R404
1. 29 октября. Понятие сложности алгоритма, О-большое и о-малое, анализ простейших алгоритмов.Jupyter, Слайды
2. 31 октября. Про О-большие и пределы. Примеры: скользящее среднее, два указателя (merge). In-place алгоритмы: отражение и циклический сдвиг. Jupyter, Jupyter PDF, Слайды
3. 5 ноября. Стэк, очередь, дэк. Про реализации на списках и массивах. Jupyter, Jupyter PDF, Slides. Дополнительное чтение: Стэки и очереди
4. 7 ноября. Рекурсия: быстрое возведение в степень, перечисление подмножеств. Jupyter, Jupyter PDF, Slides. Дополнительное чтение: Раздел 1.10 про быстрое возведение в степень
5. 12 ноября. Рекурсия: перечисление перестановок и подмножеств, subset sum как пример простейшего branch&bound. Jupyter html Jupyter
6. 14 ноября. Динамическое программирование: введение и text justification. Slides Jupyter Jupyter html. Дополнительное чтение: TJ, TJ (как за n log n)
7. 19 ноября. Динамическое программирование: наибольшая общая подпоследовательность, top-down vs bottom-up. Jupyter Jupyter html. Дополнительное чтение: видеолекция про LCS
8. 21 ноября. Контрольная работа. Задачи
9. 26 ноября. Динамическое программирование: задача о рюкзаке, приближенный алгоритм. Jupyter, Jupyter html. Чтение: как делать рюкзак динамикой (bottom-up), видео про то же, но top-down, полиномальная аппроксимация (очень рекомендую)
10. 28 ноября. Поиск и сортировка: бинарный поиск, сортировка вставкой, сортировка слиянием. Jupyter (до лекции)
11. 3 декабря. Сортировка: сложность слияния, нижняя оценка на comparison-based sorting, qsort без анализа сложности. Jupyter Jupyter html
12. 5 декабря. Графы, поиск в глубину, проверка ацикличности. Jupyter Jupyter html Почитать: часть 1 часть 2
Домашние задания
- Домашнее задание 1. Дедлайн - 8 ноября.
- Домашнее задание 2 (контест). Дополнительно к контесту нужно написать оценку сложности своего алгоритма в задачах A и C. Дедлайн - 15 ноября.
- Домашнее задание 3. Дедлайн - 22 ноября.
- Домашнее задание 4 (контест). Дополнительно к контесту нужно написать оценку сложности своего алгоритма в задачах A и B. Дедлайн - 29 ноября. Дедлайн со штрафом 50% - 6 декабря.
- Домашнее задание 5 (контест). Дедлайн - 8 декабря. Дедлайн со штрафом 50% - 13 декабря.
Семинары
Литература
Наш курс не следует какому-то конкретному учебнику. Я бы рекомендовал для дополнительного (и душеполезного!) чтения следующие книги
- Algorithms, Jeff Erickson
- Algorithms, Dasgupta, Papadimitriou, Vazirani, english, russian (недавно издана МЦНМО, можно купить бумажную)