This staple of algorithms courses everywhere, endearingly referred to as CLRS
after the last names of the authors, is perhaps the definitive work on
algorithms. A comprehensive book, it certainly cover your needs across
much of computer science. It also includes a variety of exercises
that you may find to be quite useful if you're studying algorithms outside the
classroom. This book covers everything from basic algorithmic analysis such
as big-O notation and its brethren to crucial and common algorithms
like search, sorting, techniques like dynamic
programming, and advanced data structures like Fibonacci heaps.
This is a great book if it suits your needs--if you're writing code
using
numerical algorithms. Especially nice is that it includes source
code for the algorithms discussed. But if you're just looking for a
book of general algorithms, this book will not be a good fit.