Beginning Java Data Structures and Algorithms : Sharpen your problem solving skills by learning core computer science concepts in a pain-free manner
Teaches you tools that you can use to build efficient applications. It starts with an introduction to algorithms and big O notation, later explains bubble, merge, quicksort, and other popular programming patterns. You’ll also learn about data structures such as binary trees, hash tables, and graphs. The book progresses to advanced concepts, such as algorithm design paradigms and graph theory. By the end of the book, you will know how to correctly implement common algorithms and data structures within your applications.
Algorithms and data structures : The Basic Toolbox
This book is a concise introduction addressed to students and professionals familiar with programming and basic mathematical language.

