The Archive of Interesting Code: TODO List
Below is a list of all of the algorithms and data structures that I'm hoping to some day code up. This list will grow as I learn of more
algorithms to try out, and will shrink as I start crossing them off. Usually, it grows more than it shrinks. :-)
I've marked in bold the entries on this list that I'm really hoping to get implemented sometime soon. These are usually algorithms
I've been reading up on more recently, or which build off of other algorithms/data structures I've coded up. Some of the descriptions here
are vague (such as "Linear-Time MST with Integer Weights") where I know that an algorithm exists meeting the description but don't know
enough about the problem to be any more specific. If you see anything along those lines, I'd really appreciate an email with either
a clarification or a pointer to a particular paper.
- Aho-Corasick Algorithm
- Bignum
- Reference-Counted Smart Pointer
- Array Deque
- Tarjan's SCC Algorithm
- Fixed-Point Iteration
- Soft Heap
- Bidirectional Map
- Bloom Filter
- Perceptron Learning
- Link/Cut Tree
- AA tree
- Dynamic Perfect Hash Table
- Hindley-Milner Type Inference
- Rope
- UCT Algorithm
- GADDAG
- Longest Path Algorithm
- A* Search
- Binary Decision Diagram
- Propositional Network
- Zero-Suppressed Binary Decision Diagram
- Polynomial Interpolation
- Huffman Encoding
- Burrows-Wheeler Transform
- Quicksort
- Simplex Algorithm
- Expander Graph Generator
- QR Factorization
- Cholesky Factorization
- Singular Value Decomposition
- Timsort
- Goldberg's Shortest Path Algorithm
- Seam Carving
- Gaussian Elimination
- B Tree
- Edmonds's Matching w/ Union-Find
- Boruvka's MST Algorithm
- Karger-Klein-Tarjan Randomized MST
- Linear-Time MST Verification
- PageRank
- Alpha-Beta Pruning
- Chess Bitboard
- HSL-to-RGB Conversion
- Fast Fourier Transform
- Marriage-before-Conquest Algorithm
- Chan's Algorithm
- Karger's Min-Cut Algorithm
- Graph Coloring
- Brodal Queue
- Christofides Algorithm
- Red-Black Tree
- Trie
- Minimum-Cost Arborescence
- Radix Tree
- Lancosz Iteration
- Arnoldi Iteration
- Suffix Tree (Ukkonen's algorithm)
- Suffix Array
- 2-3 Finger Tree
- Selection Sort
- Insertion Sort
- Binary Search
- Simulated Annealing
- Interval Tree
- kd-Tree
- Quadtree / Octree
- Random-Restart Hill Climbing
- Boosted Decision Tree
- Support Vector Machine
- LR(1) Parser Generator
- LALR(1) Parser Generator
- SLR(1) Parser Generator
- Earley Parser
- CYK Parser
- Value Iteration
- Policy Iteration
- Set Cover Approximation
- Delta Debugging Algorithm
- Hough Transform
- Tiered Vector
- Brodnik Tiered Vector
- Multidimensional Array
- B+ Tree
- Sparse Array
- Memory-Adaptive Merge
- Ellipsoid Method for LP
- BSP Tree
- Pairing Heap
- Fusion Tree
- Quadedge
- Winged-Edge
- Horn Clause SAT
- Chazelle's MST Algorithm
- Push-Relabel Max Flow Algorithm
- Knapsack Problem with Dynamic Programming
- Order Statistic Tree
- Linear-Time MST with Integer Weights
- Polygon Triangulation
- Brodal Fast Join Trees
- Gale-Shapley Algorithm
- Maximum-Weight Matching
- Chained Hashing
- Linear Hashing
- Quadratic Hashing
- Robin Hood Hashing
- Bentley-McIlroy 3-Way Merge
- Sideways Heap
- Deterministic Skiplist
- Left-Leaning Red-Black Tree
- Leftist Heap
- Fenwick Tree
- Apostilico-Giancarlo String Matching
- Electrical Circuit Solver
- Dinic's Algorithm
- Fleury's Algorithm
- Hopcroft-Karp Algorithm
- Planarity Testing
- Thorup Queue (Priority Queue from Sorting Algorithm)
- PQ Tree
- SPQR Tree
- Skew heap
- Pagoda
- Bitap algorithm
- Min-Max heap
- LZW compression
- Static perfect hash table
- Hungarian algorithm
- Hirschberg's algorithm
- AKS primality test
- Bootstrapped skew binomial queue (Brodal and Okasaki)
- Hood-Melville queue
- Boyer-Moore algorithm
- Double-array trie
- GSAT
- Scaling Dijkstra's algorithm
- Count-Min Sketch
- Subset construction
Back