Об этом проекте

Этот репозиторий — коллекция примеров алгоритмов и структур данных на JavaScript. Для каждой записи есть отдельный README с объяснениями и внешними ссылками, включая видео на YouTube. Он предназначен в первую очередь для обучения и подготовки к собеседованиям, а не как production-библиотека. Среди структур данных: связные списки, очереди, стеки, хеш-таблицы, кучи, очереди с приоритетом, деревья (бинарного поиска, AVL, красно-чёрные, segment tree и дерево Фенвика), графы, системы непересекающихся множеств, фильтры Блума и LRU-кэши. Алгоритмы перечислены как по темам (математика, множества, строки, поиск, сортировка, деревья, графы, криптография, машинное обучение, обработка изображений, статистика и эволюционные алгоритмы), так и по парадигмам (brute force, жадные, divide and conquer, динамическое программирование, backtracking и branch & bound). Элементы помечены B для Beginner и A для Advanced. Проект включает playground-файл для экспериментов и тесты для всех реализаций. Основные команды: npm install, npm run lint, npm test и npm test -- 'LinkedList'. Рекомендуется Node.js >=16. В README также есть таблицы сложности для нотации Big O, операций над структурами данных и алгоритмов сортировки массивов.