Math

Bit Manipulation

Sorting

Searching

String Algorithms

Pattern Searching

Dynamic Programming

Greedy Algorithms

Backtracking

Divide and Conquer

Graph Algorithms

Randomized Algorithms

Branch and Bound