Below are four great books on algorithms.
Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein provides plain-English descriptions of algorithms and corresponding pseudocode.
Algorithms by Dasgupta, Papadimitriou, and Vazirani, which has been used at Berkeley and UCSD for more than 10 years, explains the fundamentals of algorithms in a narrative fashion. It includes historical context, examples of practical applications, and the underlying mathematical theory.
Algorithm Design by Joe Kleinberg and Éva Tardos explains key algorithms via the real-world problems that motivate them.
Algorithms by Robert Sedgewick and Kevin Wayne surveys important algorithms used for sorting, searching, graph processing, and string processing. It includes new Java implementations in a modular programming style.