Robert Sedgewick has thoroughly rewritten and substantially expanded andupdated his popular work to provide current and comprehensive coverage ofimportant algorithms and data structures. Christopher Van Wyk and Sedgewickhave developed new C++ implementations that both express the methods in aconcise and direct manner, and also provide programmers with the practicalmeans to test them on real applications. Many new algorithms are presented, and the explanations of each algorithmare much more detailed than in previous editions. A new text design anddetailed, innovative figures, with accompanying commentary, greatly enhancethe presentation. The third edition retains the successful blend of theory andpractice that has made Sedgewick's work an invaluable resource for more than250,000 programmers! This particular book, Parts 1-4, represents the essential first half of Sedgewick'scomplete work. It provides extensive coverage of fundamental data structuresand algorithms for sorting, searching, and related applications. Although thesubstance of the book applies to programming in any language, theimplementations by Van Wyk and Sedgewick also exploit the natural matchbetween C++ classes and ADT implementations. Highlights
Expanded coverage of arrays, linked lists, strings, trees, and other basic
data structures Greater emphasis on abstract data types (ADTs), modular programming, object-oriented programming, and C++ classes than in previous editions
Over 100 algorithms for sorting, selection, priority queue ADT implementations, and symbol table ADT (searching) implementations
New implementations of binomial queues, multiway radix sorting, randomized BSTs, splay trees, skip lists, multiway tries, B trees, extendible hashing, and much more Increased quantitative information about the algorithms, giving you a
basis for comparing them Over 1000 new exercises to help you learn the properties of algorithms Whether you are learning the algorithms for the first time or wish to have up-to-date reference material that incorporates new programming styles with classic and new algorithms, you will find a wealth of useful information in this book.
User review
Good C++ text for college-level introduction to algorithms
Good, solid, book on algorithms. Used in many college courses. Covers the material commonly found in a college-level introduction to algorithms course that comes after introduction to programming. Not as demanding in the algorithms as in T. Cormen et al. Does assume reader already has the basics of C++ programming. Covers standard C++ and does not focus on `Windows` C++ (e.g. MFC or C++.Net). Good book for a following ACM guidelines for a course on algorithms. Title says `algorithms` and `data structures` but better for an algorithms course and not so much for a data structures course.
User review
I wish I had this when I was in college
This book puts most of my college textbooks to shame. Not that they were bad, but really this is a step above. Sedgewick is a master at distilling difficult concepts into just a few lines of code, and then talking the reader through all of the implications of any design decision. For a professional who needs to reacquaint himself with the basic principles of algorithms, and needs some simple code to get started on coding a solution, this cannot be beat. While I am not in school anymore, I feel this can also be a great supplemental text for any serious Computer Science university student, although it's possible that the focus on C++ implementations may not be ideal for curricula where Java is the mainstay.
One of the factors that I did not see mentioned in other reviews is that Sedgewick's visual representations of the algorithms are phenomenal. In older algorithms textbooks, these have always been represented by small diagrams--if any--that show what happens when an algorithm is used to attack a small problem (say, a linked list with 10 nodes). This text shows a visual representation of those small cases, but then goes the extra mile to show visual representations of the same algorithm when scaled to a variety of massive inputs. These representations are a great tool for comparing the scalability of various algorithmic approaches against one another.
User review
Interesting
If you need a book to introduce yourself in data structures, thats not your book. This books are for consult, not to learn, cos there are leaks : insuficient code, insuficient large explanations and drawings about TDAs. Furthermore, its expensive.
Even trough that, Id recommended part 5 because its a good collection of the most used algorithms based in graphs.
User review
If you want to _really_ understand red-black trees,,,,.
Any professional programmer would benefit from having these books at hand. Excellent discussions of the basic algorithms which every programmer needs to know.
But I would like to particularly highlight the discussions on binary and n-ary search trees. The most enlightening discussion in print, giving the reader a real synoptic view of search tree algorithms, how they evolved, and their culmination in red-black trees.
Other reviewers have mentioned that the algorithms as presented here seem to be just warmed=over versions of their C counterparts presented in the C edition of this work. There is a germ of truth to this, but I really don't consider it to be a valid criticism of the books. The point here is not to present C++ coding techniques, but to understand algorithms. If you want to know what a state-of-the art C++ implementation of Red-Black trees looks like, just read the source code which comes with the GNU compiler toolchain. But you're not going to have a prayer of understanding it until you first understand how Red-black trees work--that's where this book comes in. If you are trying to explain the Red-black tree algorithm, you don't want all of the C++ do-dads and optimizations, templates, etc, all cluttering up the presentation of the skeletal algorithm.
User review
Crunch Time
When you are ready to take the bold step into algorithms, this book is a great second step. I say second step because I think it helps if you read `teach yourself algorithms in 21 days` before this book.
This book deals with a good number of algorithms and does not shy away from reasonable analysis. The book helped a lot when I was having problems with putting a good harsh function together.
The chapter on recursion is also very good too.
In order to write decent code you have to know about this difficult/painful subject and this book takes some of that pain away.