I've been programming in languages (C/C++/Ruby/Java/HTML) for some time now and am currently entering my senior year of high school. I'm taking AP Comp Sci, which uses Java, but want to have a better grasp of some of the more "math-y" concepts in computer science, like hashes/algorithms/etc. For someone who has done basic object oriented programming but doesn't know any of the algorithmic aspects of computer science (And wants to know them before he goes off to college), what books would you recommend that cover algorithms and the more mathematical stuff in a way that's easy for your rudimentary programmer to understand?
Some examples I've heard given are "Introduction to Algorithms" and "Structure and Interpretation of Computer Programs"; I was going to go with Introduction to Algorithms but it's around 80 dollars new, and I'm not sure if SICP has any of the algorithmic math I want to pursue. Haha, I guess all I'm asking for is personal opinions from people that have studied algorithm books and can give honest personal opinions.
Any and all feedback is appreciated; Thank you!
-Neil