Introduction to Algorithms 3rd Third Edition by Thomas H. Cormen

Introduction to Algorithms uniquely combines rigor and comprehensiveness. Each chapter is relatively self-contained and can be used as a unit of study. The second edition featured new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming.