i prefer tardos/kleinberg{http://www.amazon.com/Algorithm-Design-Jon-Kleinberg/dp/0321...} for algorithms, at least for self study. The book has solutions, doesnt leave any proofs incomplete and has a little bit more focus on real world examples. its also half as long, but still covers 3/4 of the material.