"Data Structures and Algorithm Analysis in Java "is an "advanced algorithms" book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amount of efficiency. Readers should have some knowledge of intermediate programming, including topics as object-based programming and recursion, and some background in discrete math. As the speed and power of computers increases, so does the need for effective programming and algorithm analysis. By approaching these skills in tandem, Mark Allen Weiss teaches readers to develop well-constructed, maximally efficient programs in Java. Weiss clearly explains topics from binary heaps to sorting to "NP"-completeness, and dedicates a full chapter to amortized analysis and advanced data structures and their implementation. Figures and examples illustrating successive stages of algorithms contribute to Weiss' careful, rigorous and in-depth analysis of each type of algorithm. A logical organization of topics and full access to source code complement the text's coverage.
This is the only data structure book I've managed to read from cover to cover. Compared to other books that focus primarily on algorithms or the mix of both, this one excels at explaining various data structures independently. I took it upon myself to implement all the data structures introduced in this book using Java, which deepened my understanding of many concepts I had only heard of before. This hands-on approach not only built my confidence but also gave me a comprehensive understanding of the most common data structures, as well as a few lesser-known ones. This knowledge was instrumental in helping me land a decent job as a software engineer.
A clear book, but rather thin for the topic. In any matter, I did well for the class that I took this with, and I was happy that for the actual class we did closely follow the book in using what it had to offer to build real projects. I felt after reading it that I had harvest this particular book pretty well.
Pretty good data structures and algorithms reference despite the fact that many of the code examples have bugs in them. The errata for the bugs in the code and the code examples themselves are provided on the authors web site.
A good book is always worth reading twice. And I'm able to appreciate it more now. It's very useful if you want to start from the very basic, or want to review the fundamental knowledge.