Math
Bit Manipulation
Sorting
Searching
String Algorithms
Pattern Searching
Dynamic Programming
Greedy Algorithms
Backtracking
Divide and Conquer
Graph Algorithms
Randomized Algorithms
Branch and Bound