Жадные алгоритмы → BST и AVL (19 апреля 2017)
- Приближённые алгоритмы
- [15 минут] ln(n)-OPT алгоритм для set cover (покрыть множество множествами)
- [25 минут] Задача про дедлайны, решения без динамики
- Идея "минимальный по времени брать выгодно". Решение за O(n2).
- Идея "жадно брать в порядке возрастания дедлайна". Если выгодно сделать замену, сделать замену.
- Доказательство корректности последней идеи.
− Перерыв −
- BST
- Определение, поиск, добавление и удаление
- Прошивка: предыдущий и следующий элемент, как бы двусвязный список
- Find и delete: при желании их умеют делать хеш-таблицу + ленивость
- Код добавления: обычная и персистентная (immutable) версии
- Персистентные структуры данных
- AVL
- Определение, ограничение на высоту, малые и большие вращения
- Перебалансировка после add, доказательство леммы "не более одного вращения на add"