kevin-wayne/algs4

Algorithms, 4th edition textbook code and libraries

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 44 minutes ago
Added to GitGenius on September 8th, 2026
Created on August 31st, 2015
Open Issues & Pull Requests: 25 (+0)
GitHub issues: Enabled
Number of forks: 2,656
Total Stargazers: 7,519 (+0)
Total Subscribers: 386 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 2
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 420 days
Stale 30+ days: 2
Stale 90+ days: 2

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

algs4 is a Java library and code repository that implements the algorithms and data structures from the Algorithms, 4th edition textbook.

The repository addresses the need for clear, accessible implementations of fundamental algorithms that every programmer should understand. Rather than optimizing purely for speed, the code prioritizes clarity and elegance to expose core algorithmic ideas in a straightforward manner. The implementations cover approximately fifty essential algorithms and data structures, designed to be portable and efficient while remaining pedagogically sound. The code embraces some advanced Java features like generics and iterators where they aid understanding, but deliberately avoids others like inheritance and concurrency that would obscure the core concepts.

This resource suits students learning algorithms, particularly those taking the Coursera Algorithms courses, as well as practitioners who want reference implementations they can study and understand. The code integrates with standard Java build tools and development environments including Maven, Gradle, Eclipse, NetBeans, and IntelliJ. While some implementations perform as well as or better than their counterparts in the Java standard library, the primary goal is pedagogical clarity rather than competitive performance. The repository explicitly discourages storing solutions to programming assignments in public repositories, reflecting its educational context.

The project maintains a curated wishlist of algorithms and data structures for future addition, and welcomes community contributions that follow the established code style and are thoroughly tested. The codebase has been translated to multiple programming languages including Scala, .NET, Python, and Go, extending its reach beyond Java developers. Development activity shows ongoing maintenance and refinement of the core implementations to keep them aligned with the textbook and responsive to community needs.