Поддерживаемая сообществом коллекция алгоритмов на Python для обучения и изучения.
trekhleb/javascript-algorithms
Подборка классических алгоритмов и структур данных на JavaScript с пояснениями и ссылками на дополнительные материалы.
- Звёзды
- 196,685
- Форки
- 31,010
- Открытые issues
- 413
- Последний коммит
- 3 месяца назад
Что это?
В этом репозитории реализован широкий набор распространённых алгоритмов и структур данных на JavaScript. Здесь представлены базовые структуры — связные списки, стеки, очереди, хеш-таблицы и кучи, — а также деревья (BST, AVL, красно-чёрные, отрезков и Фенвика), графы, префиксные деревья и LRU-кэши.
Алгоритмы сгруппированы по темам (математика, множества, строки, поиск, сортировка, графы, криптография и несколько примеров машинного обучения), а также по подходам: полный перебор, жадные алгоритмы, «разделяй и властвуй», динамическое программирование и поиск с возвратом. Для каждого алгоритма указан уровень сложности и дана ссылка на отдельную страницу с пояснением.
В репозитории также есть таблицы сложности Big O для структур данных и алгоритмов сортировки, а также npm-скрипты для установки зависимостей, запуска ESLint и тестов с фильтрацией по имени.
Ключевые возможности
- 01Реализованы основные структуры данных, включая связные списки, кучи, префиксные деревья и несколько разновидностей деревьев.
- 02Алгоритмы сгруппированы по темам и подходам, например по динамическому программированию и поиску с возвратом.
- 03Для каждого алгоритма есть ссылка на отдельную страницу с пояснениями, дополнительными материалами и видео.
- 04Включены сравнительные таблицы сложности Big O для структур данных и алгоритмов сортировки.
- 05Есть npm-скрипты для проверки кода линтером и запуска тестов, в том числе с фильтрацией по имени.
Сценарии использования
- Подготовка к техническим собеседованиям, на которых проверяют знание алгоритмов на JavaScript.
- Изучение работы структуры данных или алгоритма сортировки по его реализации.
- Поиск временной и пространственной сложности распространённых структур данных и алгоритмов сортировки.
- Использование кода как примера при реализации похожей логики в проекте на JavaScript.
Темы
Частые вопросы
- Что такое javascript-algorithms?
- Подборка классических алгоритмов и структур данных на JavaScript с пояснениями и ссылками на дополнительные материалы. В этом репозитории реализован широкий набор распространённых алгоритмов и структур данных на JavaScript. Здесь представлены базовые структуры — связные списки, стеки, очереди, хеш-таблицы и кучи, — а также деревья (BST, AVL, красно-чёрные, отрезков и Фенвика), графы, префиксные деревья и LRU-кэши.
- javascript-algorithms можно использовать бесплатно? Какая у него лицензия?
- javascript-algorithms распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- javascript-algorithms всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в javascript-algorithms — 26 июл. 2026 г..
- Для чего можно использовать javascript-algorithms?
- Подготовка к техническим собеседованиям, на которых проверяют знание алгоритмов на JavaScript. Изучение работы структуры данных или алгоритма сортировки по его реализации. Поиск временной и пространственной сложности распространённых структур данных и алгоритмов сортировки. Использование кода как примера при реализации похожей логики в проекте на JavaScript.
- Где скачать javascript-algorithms?
- Исходный код и инструкции по установке — на GitHub: https://github.com/trekhleb/javascript-algorithms
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Подборка онлайн-курсов по робототехнике, университетских лекций, книг и практических материалов для самостоятельного обучения с тегами на двух языках.
Бесплатный учебный план по информатике для самостоятельного обучения: онлайн-курсы и книги, разбитые на вводный, основной и углублённый этапы.
Подборка университетских курсов по компьютерным наукам с видеолекциями, разбитая по темам.
Подборка вопросов и ответов для собеседований по ReactJS, охватывающая React, Router, Redux, тестирование и React Native.
Открытые библиотеки для React и Svelte, позволяющие создавать интерактивные интерфейсы на основе узлов: блок-схемы, графы и редакторы рабочих процессов.