# Algorithms

- Negacyclic Polynomial Multiplication
- Polynomial Multiplication Using the FFT
- "Practical Math" Preview: Collect Sensitive Survey Responses Privately
- Searching for RH Counterexamples — Search Strategies
- Earthmover Distance
- Binary Search on Graphs
- Formulating the Support Vector Machine Optimization Problem
- The Inner Product as a Decision Rule
- Bayesian Ranking for Rated Items
- The Reasonable Effectiveness of the Multiplicative Weights Update Algorithm
- Zero Knowledge Proofs for NP
- The Blum-Blum-Shub Pseudorandom Generator
- Zero Knowledge Proofs — A Primer
- Singular Value Decomposition Part 2: Theorem, Proof, Algorithm
- Singular Value Decomposition Part 1: Perspectives on Linear Algebra
- Big Dimensions, and What You Can Do About It
- Hashing to Estimate the Size of a Stream
- Load Balancing and the Power of Hashing
- A Quasipolynomial Time Algorithm for Graph Isomorphism: The Details
- Serial Dictatorships and House Allocation
- One definition of algorithmic fairness: statistical parity
- The Boosting Margin, or Why Boosting Doesn't Overfit
- The Welch-Berlekamp Algorithm for Correcting Errors in Data
- What does it mean for an algorithm to be fair?
- Weak Learning, Boosting, and the AdaBoost algorithm
- The Many Faces of Set Cover
- Markov Chain Monte Carlo Without all the Bullshit
- Finding the majority element of a stream
- Hamming's Code
- Linear Programming and the Simplex Algorithm
- Learning a single-variable polynomial, or the power of adaptive queries
- On the Computational Complexity of MapReduce
- When Greedy Algorithms are Perfect: the Matroid
- Parameterizing the Vertex Cover Problem
- When Greedy Algorithms are Good Enough: Submodularity and the (1—1/e)-Approximation
- The Mathematics of Secret Sharing
- Learning to Love Complex Numbers
- Community Detection in Graphs — a Casual Tour
- Stable Marriages and Designing Markets
- Elliptic Curve Diffie-Hellman
- Connecting Elliptic Curves with Finite Fields
- Want to make a great puzzle game? Get inspired by theoretical computer science.
- Programming with Finite Fields
- Elliptic Curves as Python Objects
- Simulating a Biased Coin with a Fair Coin
- Simulating a Fair Coin with a Biased Coin
- Fixing Bugs in "Computing Homology"
- The Two-Dimensional Fourier Transform and Digital Watermarking
- Adversarial Bandits and the Exp3 Algorithm
- Optimism in the Face of Uncertainty: the UCB1 Algorithm
- Reservoir Sampling
- Guest Post: Torus-Knotted Baklava
- Miller-Rabin Primality Test
- Bezier Curves and Picasso
- Computing Homology
- Seam Carving for Content-Aware Image Scaling
- k-Means Clustering and Birth Rates
- Depth- and Breadth-First Search
- Neural Networks and the Backpropagation Algorithm
- Decision Trees and Political Party Classification
- Complete Sequences and Magic Tricks
- Trees—A Primer
- K-Nearest-Neighbors and Handwritten Digit Classification
- The Cellular Automaton Method for Cave Generation
- Dynamic Time Warping for Sequence Comparison
- The Fast Fourier Transform
- Principal Component Analysis
- Streaming Median
- Kolmogorov Complexity—A Primer
- Optimally Stacking the Deck—Texas Hold 'Em
- Classic Nintendo Games are NP-Hard
- In Place Uniform Shuffle
- P vs. NP, A Primer (And a Proof Written in Racket)
- Cryptanalysis with N-Grams
- Word Segmentation, or Makingsenseofthis
- A Spoonful of Python (and Dynamic Programming)
- Numerical Integration
- Row Reduction Over A Field
- Metrics on Words
- Tiling a Chessboard with Dominoes (Opposite Colors Removed)
- A Taste of Racket
- The Perceptron, and All the Things it Can't Perceive
- Graph Coloring, or Proof by Crayon
- Optimally Stacking the Deck—Kicsi Poker
- Turing Machines—A Primer
- The Wild World of Cellular Automata
- Google's Page Rank—The Final Product
- Google's PageRank—A First Attempt
- Big-O Notation—A Primer
- Well Orderings and Search
- Google's PageRank—Introduction