Reading list: Grokking Algorithms
Best for beginners, with illustrations and step-by-step explanations of algorithms.
Covers sorting, searching, recursion, graph algorithms, and dynamic programming.