This is a very good book: http://www.amazon.com/Introduction-Algorithms-Third-Edition-...
I will say though, it's really intense on theory, and it requires a good background in math. A lot of people will recommend this book though. Also, it's physically heavy :)