For me, the main advantage of "Data Structures and Algorithms in Java" is the language author uses to describe algorithms. He doesn't use overcomplicated academic language with tons of math. No. Robert uses plain English and tries to give an as simple explanation of an algorithm as possible.
Why this book?
This book is for busy students or programmers who decided to revise algorithms before an interview. This book can be scanned very fast: just read a list of ideas at the end of a chapter, look through code examples. If you find something you don't understand, read the chapter.
On the other hand, if you read it from cover to cover doing all exercises, you will become experienced in algorithms. The book provides not only text explanation and code listings. It contains a Java application with a demonstration how different algorithms and data structures work.
As I've mentioned above, another reason to read this book is a language. It's written in plain English with an extremely clean explanation of algorithms. If you get sleepy after two pages from Knuth's "The Art of Computer Programming", try this one.
Is there something that should be better?
Algorithms is a very conservative topic. There are few changes since the book was published. However, Java has changed a lot. There are new syntax constructions in it. There are new approaches how to write good Java code. There are new code styles.
Please, get me right. All code examples in the book are still valid Java code. Nonetheless, it is not a modern Java. I don't want to see such code in production. Why is it important to use latest approaches in code examples? Because this kind of books is read mostly by students and junior programmers. They copy this style in their projects.
Maybe, it's better to use pseudocode for code examples like Knuth and Cormen do. Of course, it adds extra complexity for students. In this approach, they should translate pseudocode to a usual programming language. In any case, it increases chances that students learn how to use their programming language in a proper manner.
- Very easy language
- Good set of algorithms
- Each chapter has a list of its ideas
- Rather old
- Weird code examples formatting
- Some algorithms are given without code, just explanation
Got a question? Hit me on Twitter: avkorablev