- Binary search
- Running time
- Lists + Arrays
- Selection sort
- Recursion
- Divide and Conquer
- Quicksort
- Hash tables
- Graphs + Breadth-first search
- Dijkstra's Algorithm
- Greedy algorithms
- Dynamic programming
- k-nearest neighbors
- Trees
- Inverted indexes
- Fourier transform
- Parallel algorithms
- Bloom filters + HyperLogLog
- SHA algorithms
- Diffie-Hellman key exchange