The presentation is such that it can be difficult for first-timers to follow, and many topics are simply absent, e.g. network flows.
On the other hand, those already familiar with the material will find it quite readable and handy as a reference or for brushing up.
The authors choose to present algorithms from a design point of view, ie greedy approach, divide-and-conquer, bactracking, dynamic programming etc instead of the traditional way of presenting algorithms for solving a class of problems, e.g searching, sorting, graph algorithms and so on.
While this is good for those who're already familiar with the traditional approach and also offers a unified view of problem-solving strategies in Algorithmics, it is decidedly easier for the beginning student to have (e.g) all sorting algorithms in one place than to discover that they're scattered across different chapters.
All algorithms are presented in pseudocode, and are thus have no programming language dependencies. A healthy number of solved examples have been provided, and unsolved problems are numerous.
In summary, i think this is quite a good book for practitioners, researchers and those doing an advanced course in Algorithms, whereas it may not be suitable for an introductory course (except, perhaps, as a supplement).
This is an introductory-level algorithm book. It includes worked-out examples and detailed proofs. Presents Algorithms by type rather than application. Includes structured material by techniques employed, not by the application area, so readers can progress from the underlying abstract concepts to the concrete application essentials. It begins with a compact, but complete introduction to some necessary math. And it approaches the analysis and design of algorithms by type rather than by application.