trekhleb/javascript-algorithms

📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 6 minutes ago
Added to GitGenius on May 12th, 2026
Created on March 24th, 2018
Open Issues & Pull Requests: 405 (+0)
Number of forks: 31,041
Total Stargazers: 196,522 (+0)
Total Subscribers: 4,222 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 22.1 hours
Mean response time: 109.5 days
90th percentile: 240.2 days
Tracked items: 43

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 9% of issues opened in the past year have been closed. Three people close 78% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 23
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 772 days
Stale 30+ days: 22
Stale 90+ days: 19

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

The javascript-algorithms repository is a comprehensive educational resource containing implementations of popular algorithms and data structures written in JavaScript. Created and maintained by trekhleb, the repository serves as both a learning tool and a reference guide for computer science fundamentals, with particular emphasis on interview preparation.

The repository's core offering is a collection of algorithm and data structure implementations, each accompanied by its own dedicated README file that includes explanations and links to further reading materials, including YouTube videos. This structured approach makes the content accessible to learners at different levels. The repository provides implementations across a wide range of data structures, including foundational structures like linked lists, doubly linked lists, queues, stacks, and deques, as well as more advanced structures such as tries, various tree types including binary search trees, AVL trees, red-black trees, segment trees, and Fenwick trees. Graph implementations covering both directed and undirected graphs are included, along with specialized structures like disjoint sets, bloom filters, and LRU caches. Each data structure is marked with difficulty indicators, designating them as either beginner or advanced level content.

The algorithms section covers multiple domains including sorting algorithms, search algorithms, graph algorithms, recursion, and dynamic programming techniques. This breadth of coverage makes the repository valuable for those preparing for coding interviews as well as students studying computer science fundamentals.

The repository's contributor network overlaps with major open-source projects including microsoft/vscode, microsoft/typescript, and rust-lang/rust, suggesting it attracts developers from significant technology organizations.

The repository demonstrates strong internationalization support, with README documentation available in 18 languages including Simplified Chinese, Traditional Chinese, Korean, Japanese, Polish, French, Spanish, Portuguese, Russian, Turkish, Italian, Indonesian, Ukrainian, Arabic, Vietnamese, German, Uzbek, and Hebrew. This multilingual approach significantly expands the repository's accessibility to global audiences.

The repository includes a prominent notice regarding the situation in Ukraine, with links to charitable organizations supporting humanitarian efforts. This reflects the maintainer's commitment to using the platform for broader social awareness alongside technical education.

The classification of the repository spans data structures, algorithm implementations, JavaScript-specific content, sorting algorithms, search algorithms, graph algorithms, recursion, dynamic programming, and coding interview preparation. This multifaceted categorization reflects the repository's comprehensive scope as an educational resource that bridges theoretical computer science concepts with practical JavaScript implementations suitable for interview preparation and general algorithmic knowledge development.