Интерактивное веб-пособие по алгоритмам и структурам данных по мотивам книги «Грокаем алгоритмы» Адитьи Бхаргавы. Определения, анализ сложности (Big-O) и примеры кода на TypeScript — всё в одном месте.
- Next.js 16 (App Router)
- React 19
- TypeScript 5
- Tailwind CSS 4
- next-themes — переключение светлой/тёмной темы
- prism-react-renderer — подсветка синтаксиса
| Категория | Алгоритмы |
|---|---|
| Поиск | Бинарный поиск |
| Сортировка | Сортировка выбором, быстрая сортировка |
| Рекурсия | Факториал |
| Деревья | Обход в ширину (BFS), обход в глубину (DFS) |
| Графы | Поиск в ширину (BFS), алгоритм Дейкстры |
| Жадные алгоритмы | Покрытие множеств |
| Динамическое программирование | Задача о рюкзаке, наибольшая общая подстрока, подпоследовательность |
| Хеш-таблицы | Дедупликация |
| ML / k-NN | k-NN рекомендации, k-NN регрессия |
Массив, связный список, хеш-таблица, стек, очередь, двоичное поисковое дерево (BST), граф (список смежности), двоичная куча (мин-куча).
# Установка зависимостей
pnpm install
# Запуск dev-сервера
pnpm devПриложение будет доступно по адресу http://localhost:3000.
app/ # Страницы (App Router)
├── page.tsx # Главная (лендинг)
├── algorithms/ # Каталог и страницы алгоритмов
│ ├── page.tsx # Список алгоритмов по категориям
│ └── [slug]/page.tsx # Страница конкретного алгоритма
└── data-structures/ # Страница структур данных
components/ # React-компоненты
├── main-landing/ # Компоненты лендинга (Hero, Features, SortingAnimation)
├── ds/ # Компоненты раздела структур данных
├── Header.tsx, Footer.tsx # Шапка и подвал
├── CodeBlock.tsx # Блок кода с подсветкой синтаксиса
└── ThemeToggle.tsx # Переключатель темы
lib/ # Данные и логика
├── algorithms/ # Описания алгоритмов по категориям
│ ├── index.ts # Реестр всех алгоритмов
│ └── search/, sorting/, # Папки по категориям
│ graphs/, ...
└── ds/ # Описания структур данных