Cormen, Thomas H. et al., Introduction to Algorithms, 2d ed., Cambridge, MA: MIT Press, 2001.
This large but very clear book deals with algorithm analysis. Most of the proofs that were omitted as being "beyond the scope of this book" can be found in Cormen et al.
Lewis, Harry R., and Denenberg, Larry, Data Structures and Their Algorithms, Boston: Addison-Wesley Longman, 1997.
A bit denser than this book, Lewis and Denenberg goes into more detail on optimizations and covers more data structures.
Part I: Object-Oriented Programming
Encapsulation
Polymorphism
Inheritance
Part II: Linear Structures
Stacks and Queues
Array-Based Structures
Linked Structures
Part III: Algorithms
Analysis of Algorithms
Searching and Sorting
Recursion
Part IV: Trees and Sets
Trees
Sets
Part V: Advanced Topics
Advanced Linear Structures
Strings
Advanced Trees
Graphs
Memory Management
Out to the Disk
Part VI: Appendices
A. Review of Java
B. Unified Modeling Language
C. Summation Formulae
D. Further Reading
Index