Topics : Introduction, Complexity, Data structures, Divide-and-conquer strategy, Greedy method, Traversal and searching techniques, Dynamic programming technique, Backtracking method, Branch-and-bound method, Algebraic problems, NP-hard and NP-complete problems, Miscellaneous