DSA — структуры данных и алгоритмы¶
Трек по структурам данных и алгоритмам «с нуля»: каждая структура и каждый алгоритм реализованы вручную, без len, range, sorted и прочих встроенных помощников, — чтобы было видно, как они устроены внутри. Лабораторные есть на Python (lab01–lab05) и в зеркальных реализациях на Go, а прикладные расширения (lab00, lab06–lab11) разбирают структуры, которые реально встречаются в эксплуатации: графы, кучи, LRU-кэш, rate limiting, разбор логов, consistent hashing.
С чего начать¶
- Конспект — самодостаточный разбор всех сущностей из лабораторных: что это, зачем нужно, сложность операций и работающий пример кода. Читается без обращения к исходникам.
- Дорожная карта — куда развивать курс дальше: какие темы и структуры данных стоит добавить.
- common — общие утилиты — переиспользуемые helper'ы (
array_length,generate_array,print_array,custom_range), на которые опираются остальные лабы.
Академические лабы (lab01–lab05)¶
Базовый набор структур и алгоритмов, реализованных без встроенных функций.
- lab01 — массив и стек
- lab02 — список, очередь, дерево · lab02_random — баланс дерева
- lab03 — сортировки
- lab04 — поиск
- lab05 — hash map
Прикладные лабы (lab00, lab06–lab11)¶
Расширения под задачи SRE/DevOps: те же принципы, но на структурах из реальной эксплуатации.
- lab00 — Python для эксплуатации — ступенька до структур данных: файлы,
argparse, исключения, генераторы. - lab06 — графы и топологическая сортировка
- lab07 — куча и top-K
- lab08 — LRU-кэш
- lab09 — rate limiting
- lab10 — разбор логов
- lab11 — consistent hashing и bloom filter