MCPcopy
hub / github.com/kevin-wayne/algs4

github.com/kevin-wayne/algs4 @main sqlite

repository ↗ · DeepWiki ↗
2,399 symbols 6,538 edges 201 files 1,662 documented · 69%
README

Overview

Algorithms 4/e textbook This public repository contains the Java source code for the algorithms and clients in the textbook Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne. The official version at https://github.com/kevin-wayne/algs4 is actively maintained and updated by the authors. The programs are organized in the package edu.princeton.cs.algs4. If you need only the class files (and not the source code), you can use algs4.jar instead.

Design goals

Our original goal was to cover the 50 algorithms that every programmer should know. We use the word programmer to refer to anyone engaged in trying to accomplish something with the help of a computer, including scientists, engineers, and applications developers, not to mention college students in science, engineering, and computer science. The code is optimized for clarity, portability, and efficiency. While some of our implementations are as fast as (or faster than) their counterparts in java.util, our main goal is to express the core algorithmic ideas in an elegant and simple manner. While we embrace some advanced Java features (such as generics and iterators), we avoid those that interfere with the exposition (such as inheritance and concurrency).

Build managers

This repository is intended for use with either the Maven or Gradle build managers. It can be run from either the command line or integrated into Eclipse, NetBeans, and IntelliJ. You can also access it via Bintray.

Coursera Algorithms, Part I and II students

Feel free to use this public repository to develop solutions to the programming assignments. However, please do not store solutions to programming assignments in public repositories.

Copyright

Copyright © 2000–2023 by Robert Sedgewick and Kevin Wayne.

License

This code is released under GPLv3.

Contribute to this repository

This wishlist.txt contains a list of algorithms and data structures that we would like to add to the repository. Indeed, several of the algorithms and data structures in this repository were contributed by others. If interested, please follow the same style as the code in the repository and thoroughly test your code before contacting us.

Support for other programming languages

Some of the code in this repository has been translated to other languages:

Credits

Thanks to Peter Korgan for Maven and Gradle support.

Extension points exported contracts — how you extend this code

DrawListener (Interface)
The DrawListener interface provides a basic capability for responding to keyboard in mouse events from {@l
src/main/java/edu/princeton/cs/algs4/DrawListener.java

Core symbols most depended-on inside this repo

println
called by 609
src/main/java/edu/princeton/cs/algs4/StdOut.java
V
called by 250
src/main/java/edu/princeton/cs/algs4/Graph.java
printf
called by 141
src/main/java/edu/princeton/cs/algs4/StdOut.java
length
called by 139
src/main/java/edu/princeton/cs/algs4/Vector.java
println
called by 112
src/main/java/edu/princeton/cs/algs4/Out.java
print
called by 106
src/main/java/edu/princeton/cs/algs4/StdOut.java
uniformInt
called by 92
src/main/java/edu/princeton/cs/algs4/StdRandom.java
compareTo
called by 87
src/main/java/edu/princeton/cs/algs4/Edge.java

Shape

Method 2,123
Class 275
Interface 1

Languages

Java100%

Modules by API surface

src/main/java/edu/princeton/cs/algs4/Draw.java87 symbols
src/main/java/edu/princeton/cs/algs4/StdDraw.java77 symbols
src/main/java/edu/princeton/cs/algs4/RedBlackBST.java34 symbols
src/main/java/edu/princeton/cs/algs4/Point2D.java33 symbols
src/main/java/edu/princeton/cs/algs4/IndexBinomialMinPQ.java33 symbols
src/main/java/edu/princeton/cs/algs4/AVLTreeST.java32 symbols
src/main/java/edu/princeton/cs/algs4/StdAudioStereo.java31 symbols
src/main/java/edu/princeton/cs/algs4/IndexFibonacciMinPQ.java28 symbols
src/main/java/edu/princeton/cs/algs4/StdIn.java27 symbols
src/main/java/edu/princeton/cs/algs4/IndexMultiwayMinPQ.java27 symbols
src/main/java/edu/princeton/cs/algs4/IndexMinPQ.java27 symbols
src/main/java/edu/princeton/cs/algs4/IndexMaxPQ.java27 symbols

For agents

$ claude mcp add algs4 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact