Most Helpful Customer Reviews
|
|
41 of 43 people found the following review helpful:
5.0 out of 5 stars
Detailed, clear and complete, July 18, 2005
The flow in this book is excellent. The authors do a great job in organizing this book in logical chapter. The chapters are organized into techniques to find solutions to particular problems, like for example, Greedy Algorithms, Divide and Conquer, and Dynamic Programming.
Each chapter contains a few representative problems of the technique or topic discussed. These are discussed in great detail, which is helpful to initially grasp the concepts. Furthermore, the end of each chapter contains a number of solved exercises. These are written up in less detail than the chapter problems, because they are usually slight variations or applications of the representative problems. I found these to be very helpful to me, as to build up a stronger grasp of the problem at hand.
Furthemore, the progressive search for a solution, such as for the Weighted Interval Scheduling problem using dynamic programming, is essential to understanding the process through which we can find such algorithms. The book is well written, in a clear, understandable language. The supplementary chapters on Basics of Algorithm Analysis and Graph Theory are a great started for people who have not been exposed to those concepts previously.
Network flows are covered extensively with their applications. I suppose this section of the course was enhanced because our instructor's research interests are Network Flows and she threw example after example at us. There are a great number of problems at the end of this chapter to practice.
(...)
One of the strenghs of this book, is that when the authors determine the running time of a particular algorithm, they write about how to implement it, with which data structures and why. Although it is assumed that data structures are common knowledge for the reader, this type of analysis is helpful for further understanding of such structures.
All in all, this is a great textbook for an introductory course in the design of algorithms.
|
|
|
29 of 34 people found the following review helpful:
5.0 out of 5 stars
dealing with NP completeness, July 30, 2005
The text offers an interesting blend of rigour and informality. The numerous proofs in each chapter have that rigour. Yet what may be more important is how the text remains accessible to a primarily undergraduate audience.
The book is not just a compendium of common algorithms in computer science, and proofs about them. The authors place a stronger emphasis on motivating how to develop an intuitive understanding of the problems that the algorithms address, and of how to shape new algorithms. Or, possibly, apply or modify existing algorithms to new problems.
If you compare the text to Knuth's classic "Art of Computer Programming", then you might find Kleinberg and Tardos more accessible. (At least for undergraduate readership.)
Also, the extensive exercises at the end of each chapter often have contexts germane to the Web. For example, the links in web pages are used to motivate problems in graph theory, where we have directed (unidirectional) graphs, due to the one way nature of links. More generally, the recent, contextual nature of the problems may appeal to some students. Knuth had many exercises listed in his books, but they can be too abstract for most students.
The text also has an interesting chapter on NP problems. The authors address a very practical situation. Even if you find that you have a problem that is NP complete, it is not necessarily the end of the story. For real life reasons, you may have to find an approximate solution that is computationally feasible to evaluate. The chapter offers suggestions and examples that may be of help. (More formal texts might merely stop at proving NP completeness.)
|
|
|
6 of 7 people found the following review helpful:
5.0 out of 5 stars
Slightly better than Cormen - highly readable, June 11, 2007
Best undergraduate handbook about algorithms i've seen so far.
Examples are much less artificial than in CLRS (Introduction to Algorithms). Most of them are highly practical, e.g. using Kruskal's MST algorithm as a simple clustering device.
It's worth mentioning that E.Tardos is a world-class calibre specialist in graph algorithms. When you feel unsatisfied with network flows chapter, you can read her survey of network flows (written with two other graph titans - Goldberg and Tarjan)
The division into chapters is good, yet classical. There are also exercises after each chapter, lots of them, good for preparation if you have algorithm-oriented job interview (Google, Yahoo, Microsoft etc.).
What's next? Read Tarjan's evergreen classic - Data Structures and Network Algorithms.
|
|
|
Most Recent Customer Reviews
|