Recursion, Backtracking, Dynamic Programming, Graphs, Data Structures, Sorting and Substring Search Algorithms