Алгоритмы и структуры данных I. Базовый поток 2026: различия между версиями
Нет описания правки |
|||
| Строка 1: | Строка 1: | ||
== О курсе == | |||
'''Алгоритмы и структуры данных''' | '''Алгоритмы и структуры данных''' | ||
''1 курс, осенний семестр'' | ''1 курс, осенний семестр'' | ||
Курс посвящён анализу алгоритмов и базовым структурам данных. В течение семестра студенты изучают асимптотический анализ, рекуррентные соотношения, поиск и сортировки, пирамиды, списки, деревья поиска, амортизационный анализ и динамическое программирование. Основной акцент сделан на понимании принципов работы алгоритмов, оценке их временной сложности и умении реализовывать изученные подходы при решении задач. | Курс посвящён анализу алгоритмов и базовым структурам данных. В течение семестра студенты изучают асимптотический анализ, рекуррентные соотношения, поиск и сортировки, пирамиды, списки, деревья поиска, амортизационный анализ и динамическое программирование. Основной акцент сделан на понимании принципов работы алгоритмов, оценке их временной сложности и умении реализовывать изученные подходы при решении задач. | ||
| Строка 23: | Строка 23: | ||
! Неделя | ! Неделя | ||
! Лекция | ! Лекция | ||
! Семинар | |||
| 1 | |||
| '''Асимптотика. Анализ алгоритмов.''' O-, Ω- и Θ-нотации. Временная сложность алгоритма. Модель вычисления. | Практика и задачи по теме лекции. | |||
| 1 | | - | ||
| '''Асимптотика. Анализ алгоритмов.''' O-, Ω- и Θ-нотации. Временная сложность алгоритма. Модель вычисления. | | 2 | ||
| Практика и задачи по теме лекции. | |||
| - | |||
| 2 | |||
| '''Рекурренты. Алгоритм Евклида. Бинарный поиск.''' Рекуррентные соотношения и способы их решения: метод подстановки, деревья рекурсии, Мастер-теорема (б/д). Алгоритм Евклида. Бинарный поиск по ответу. Примеры задач. | | | '''Рекурренты. Алгоритм Евклида. Бинарный поиск.''' Рекуррентные соотношения и способы их решения: метод подстановки, деревья рекурсии, Мастер-теорема (б/д). Алгоритм Евклида. Бинарный поиск по ответу. Примеры задач. | | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 3 | | 3 | ||
| '''Квадратичные сортировки.''' Сортировки выбором, вставками и пузырьком. Реализация, время работы и доказательство. | | '''Квадратичные сортировки.''' Сортировки выбором, вставками и пузырьком. Реализация, время работы и доказательство. | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 4 | | 4 | ||
| '''Merge sort (сортировка слиянием).''' Сортировка слиянием с дополнительной памятью и Inplace. Реализация и анализ времени работы. | | '''Merge sort (сортировка слиянием).''' Сортировка слиянием с дополнительной памятью и Inplace. Реализация и анализ времени работы. | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 5 | | 5 | ||
| '''Быстрая сортировка (Quicksort).''' Реализация. Разбиение Ломуто и Хоара. Доказательство времени работы. Барьер Ω(n log n) (б/д). | | '''Быстрая сортировка (Quicksort).''' Реализация. Разбиение Ломуто и Хоара. Доказательство времени работы. Барьер Ω(n log n) (б/д). | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 6 | | 6 | ||
| '''Пирамидная сортировка (HeapSort).''' Бинарная пирамида. SiftUp и SiftDown. Построение пирамиды, пирамидальная сортировка и анализ времени работы. | | '''Пирамидная сортировка (HeapSort).''' Бинарная пирамида. SiftUp и SiftDown. Построение пирамиды, пирамидальная сортировка и анализ времени работы. | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 7 | | 7 | ||
| '''Лист. Стек. Очередь.''' Односвязные и двусвязные списки. Стек и очередь. Реализация на списках. | | '''Лист. Стек. Очередь.''' Односвязные и двусвязные списки. Стек и очередь. Реализация на списках. | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 8 | | 8 | ||
| '''Бинарное дерево поиска.''' Способы обхода. Поиск, вставка и удаление элемента. Анализ времени работы. | | '''Бинарное дерево поиска.''' Способы обхода. Поиск, вставка и удаление элемента. Анализ времени работы. | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 9 | | 9 | ||
| '''AVL-дерево.''' Анализ высоты AVL-дерева. Balance-фактор. Повороты. Поиск, вставка и удаление элементов. Анализ времени работы. | | '''AVL-дерево.''' Анализ высоты AVL-дерева. Balance-фактор. Повороты. Поиск, вставка и удаление элементов. Анализ времени работы. | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 10 | | 10 | ||
| '''Амортизационный анализ.''' Методы подсчёта, банковский метод и метод потенциалов. Очередь на двух стеках. Двоичный счётчик. | | '''Амортизационный анализ.''' Методы подсчёта, банковский метод и метод потенциалов. Очередь на двух стеках. Двоичный счётчик. | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 11 | | 11 | ||
| '''Splay-дерево.''' Повороты. Splay, Split и Merge. Поиск, вставка и удаление элементов. Анализ времени работы. | | '''Splay-дерево.''' Повороты. Splay, Split и Merge. Поиск, вставка и удаление элементов. Анализ времени работы. | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 12 | | 12 | ||
| '''Динамическое программирование.''' Критерии применимости, порядки пересчёта, одномерная и двумерная динамика. Задача о рюкзаке: дискретная и непрерывная постановки, реализация и анализ времени работы. | | | '''Динамическое программирование.''' Критерии применимости, порядки пересчёта, одномерная и двумерная динамика. Задача о рюкзаке: дискретная и непрерывная постановки, реализация и анализ времени работы. | | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 13 | | 13 | ||
| '''НОП и НВП.''' Наибольшая общая подпоследовательность: оптимальная подструктура, реализация и анализ времени. Наибольшая возрастающая подпоследовательность: решения за O(n²) и O(n log n), реализация и анализ времени. | | | '''НОП и НВП.''' Наибольшая общая подпоследовательность: оптимальная подструктура, реализация и анализ времени. Наибольшая возрастающая подпоследовательность: решения за O(n²) и O(n log n), реализация и анализ времени. | | ||
| Практика и задачи по теме лекции. | | Практика и задачи по теме лекции. | ||
| - | | - | ||
| 14 | | 14 | ||
| '''Контрольная работа''' | | '''Контрольная работа''' | ||
| Разбор сложных тем семестра. | | Разбор сложных тем семестра. | ||
| } | | } | ||
== Контрольные активности == | == Контрольные активности == | ||
Версия от 07:00, 27 августа 2026
О курсе
Алгоритмы и структуры данных
1 курс, осенний семестр
Курс посвящён анализу алгоритмов и базовым структурам данных. В течение семестра студенты изучают асимптотический анализ, рекуррентные соотношения, поиск и сортировки, пирамиды, списки, деревья поиска, амортизационный анализ и динамическое программирование. Основной акцент сделан на понимании принципов работы алгоритмов, оценке их временной сложности и умении реализовывать изученные подходы при решении задач.
Пререквизиты
- Базовые знания математики.
- Базовые знания и навыки работы с алгоритмами.
Команда курса
Лектор курса: Никулов Сергей.
Семинаристы: Мусаев Садык, Середа Андрей, Якушева София, Старокожко Иван, Бунин Лев.
Программа курса
| Неделя | Лекция | Семинар | 1 | Практика и задачи по теме лекции. | - | 2 | Практика и задачи по теме лекции. | - | 3 | Квадратичные сортировки. Сортировки выбором, вставками и пузырьком. Реализация, время работы и доказательство. | Практика и задачи по теме лекции. | - | 4 | Merge sort (сортировка слиянием). Сортировка слиянием с дополнительной памятью и Inplace. Реализация и анализ времени работы. | Практика и задачи по теме лекции. | - | 5 | Быстрая сортировка (Quicksort). Реализация. Разбиение Ломуто и Хоара. Доказательство времени работы. Барьер Ω(n log n) (б/д). | Практика и задачи по теме лекции. | - | 6 | Пирамидная сортировка (HeapSort). Бинарная пирамида. SiftUp и SiftDown. Построение пирамиды, пирамидальная сортировка и анализ времени работы. | Практика и задачи по теме лекции. | - | 7 | Лист. Стек. Очередь. Односвязные и двусвязные списки. Стек и очередь. Реализация на списках. | Практика и задачи по теме лекции. | - | 8 | Бинарное дерево поиска. Способы обхода. Поиск, вставка и удаление элемента. Анализ времени работы. | Практика и задачи по теме лекции. | - | 9 | AVL-дерево. Анализ высоты AVL-дерева. Balance-фактор. Повороты. Поиск, вставка и удаление элементов. Анализ времени работы. | Практика и задачи по теме лекции. | - | 10 | Амортизационный анализ. Методы подсчёта, банковский метод и метод потенциалов. Очередь на двух стеках. Двоичный счётчик. | Практика и задачи по теме лекции. | - | 11 | Splay-дерево. Повороты. Splay, Split и Merge. Поиск, вставка и удаление элементов. Анализ времени работы. | Практика и задачи по теме лекции. | - | 12 | Практика и задачи по теме лекции. | - | 13 | Практика и задачи по теме лекции. | - | 14 | Контрольная работа | Разбор сложных тем семестра. | }
Контрольные активностиВ течение семестра предусмотрены три контеста и итоговая контрольная работа. Точные недели публикации контестов и дедлайны будут объявлены отдельно в чате курса.
|
|---|