The Algorithm Museum

Project Purpose

The aim of this project is to implement the algorithms from Introduction to Algorithms (Cormen, Leiserson, Rivest, and Stein, henceforth CLRS) in as many languages as possible, for educational purposes. The versions we implement will contain printing of intermediate results at key spots, and eventually interactive features.

What Has Been Implemented

Chapters 1-12
Language Getting
Started
Divide
and
Conquer
Randomized
Algorithms
Heapsort Quicksort Sorting in
Linear Time
Medians /
Order
Statistics
Data
Structures
Hash Tables Binary
Search Trees
C++ Yes Yes No Yes No No No No No No
Clojure Yes No No No No No No No No No
Java Yes Yes Yes Yes No No No No No Yes
Javascript No Yes No Yes No No No No No Yes
Python Yes Yes Yes Yes Yes No No No Yes Yes
Ruby Yes Yes No Yes Yes No No No Yes Yes
Chapters 13-22
Language Red-Black
Trees
Augmenting
Data
Structures
Dynamic
Programming
Greedy
Algorithms
Amortized
Analysis
B-Trees Fibonacci
Heaps
van Emde
Boas Trees
Disjoint
Sets
Graph
Algorithms
C++ No No Yes No No No No No No Yes
Clojure No No Yes No No No No No No No
Java No No Yes Yes No No No No No Yes
Javascript No No No No No No No No No No
Python No No Yes Yes No No No No No Yes
Ruby No No Yes Yes No No No No No Yes
Chapters 22-35
Language Minimum
Spanning
Trees
Maximum
Flow
Approximation
Algorithms
C++ No No No
Clojure No No No
Java No No No
Javascript No No No
Python No No Yes
Ruby No No No

Coding Standards

Our coding standards.

Project Leaders