Hashing. Divide-and-conquer. Greedy Algorithms. Dynamic Programming. FFT. Flows in Networks. Matrix Multiplication. Linear Programming. NP-completeness.