Programming Books C Java PHP Python Learn more Browse Programming Books

Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 
Due Date: Dec 19, 2014

FREE return shipping at the end of the semester.

Access codes and supplements are not guaranteed with rentals.
 
   
Sell Us Your Item
For a $6.25 Gift Card
Trade in
Have one to sell? Sell yours here
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Introduction to Algorithms, Second Edition [Hardcover]

Thomas H. Cormen , Charles E. Leiserson , Ronald L. Rivest , Clifford Stein
4.0 out of 5 stars  See all reviews (125 customer reviews)

Rent
$26.05
In Stock.
Rented by RentU and Fulfilled by Amazon.
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Hardcover --  
Hardcover, September 1, 2001 --  
Paperback, International Edition --  
Unknown Binding --  
Shop the New Digital Design Bookstore
Check out the Digital Design Bookstore, a new hub for photographers, art directors, illustrators, web developers, and other creative individuals to find highly rated and highly relevant career resources. Shop books on web development and graphic design, or check out blog posts by authors and thought-leaders in the design industry. Shop now
There is a newer edition of this item:
Introduction to Algorithms Introduction to Algorithms 4.2 out of 5 stars (140)
$79.13
In Stock.

Book Description

September 1, 2001 0262032937 978-0262032933 2nd
The first edition won the award for Best 1990 Professional and Scholarly Book in Computer Science and Data Processing by the Association of American Publishers.

There are books on algorithms that are rigorous but incomplete and others that cover masses of material but lack rigor. Introduction to Algorithms combines rigor and comprehensiveness.

The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.

The first edition became the standard reference for professionals and a widely used text in universities worldwide. The second edition features new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming, as well as extensive revisions to virtually every section of the book. In a subtle but important change, loop invariants are introduced early and used throughout the text to prove algorithm correctness. Without changing the mathematical and analytic focus, the authors have moved much of the mathematical foundations material from Part I to an appendix and have included additional motivational material at the beginning.


Editorial Reviews

Amazon.com Review

Aimed at any serious programmer or computer science student, the new second edition of Introduction to Algorithms builds on the tradition of the original with a truly magisterial guide to the world of algorithms. Clearly presented, mathematically rigorous, and yet approachable even for the math-averse, this title sets a high standard for a textbook and reference to the best algorithms for solving a wide range of computing problems.

With sample problems and mathematical proofs demonstrating the correctness of each algorithm, this book is ideal as a textbook for classroom study, but its reach doesn't end there. The authors do a fine job of explaining each algorithm. (Reference sections on basic mathematical notation will help readers bridge the gap, but it will help to have some math background to appreciate the full achievement of this handsome hardcover volume.) Every algorithm is presented in pseudo-code, which can be implemented in any computer language, including C/C++ and Java. This ecumenical approach is one of the book's strengths. When it comes to sorting and common data structures, from basic linked lists to trees (including binary trees, red-black, and B-trees), this title really shines, with clear diagrams that show algorithms in operation. Even if you just glance over the mathematical notation here, you can definitely benefit from this text in other ways.

The book moves forward with more advanced algorithms that implement strategies for solving more complicated problems (including dynamic programming techniques, greedy algorithms, and amortized analysis). Algorithms for graphing problems (used in such real-world business problems as optimizing flight schedules or flow through pipelines) come next. In each case, the authors provide the best from current research in each topic, along with sample solutions.

This text closes with a grab bag of useful algorithms including matrix operations and linear programming, evaluating polynomials, and the well-known Fast Fourier Transformation (FFT) (useful in signal processing and engineering). Final sections on "NP-complete" problems, like the well-known traveling salesman problem, show off that while not all problems have a demonstrably final and best answer, algorithms that generate acceptable approximate solutions can still be used to generate useful, real-world answers.

Throughout this text, the authors anchor their discussion of algorithms with current examples drawn from molecular biology (like the Human Genome Project), business, and engineering. Each section ends with short discussions of related historical material, often discussing original research in each area of algorithms. On the whole, they argue successfully that algorithms are a "technology" just like hardware and software that can be used to write better software that does more, with better performance. Along with classic books on algorithms (like Donald Knuth's three-volume set, The Art of Computer Programming), this title sets a new standard for compiling the best research in algorithms. For any experienced developer, regardless of their chosen language, this text deserves a close look for extending the range and performance of real-world software. --Richard Dragan

Topics covered: Overview of algorithms (including algorithms as a technology); designing and analyzing algorithms; asymptotic notation; recurrences and recursion; probabilistic analysis and randomized algorithms; heapsort algorithms; priority queues; quicksort algorithms; linear time sorting (including radix and bucket sort); medians and order statistics (including minimum and maximum); introduction to data structures (stacks, queues, linked lists, and rooted trees); hash tables (including hash functions); binary search trees; red-black trees; augmenting data structures for custom applications; dynamic programming explained (including assembly-line scheduling, matrix-chain multiplication, and optimal binary search trees); greedy algorithms (including Huffman codes and task-scheduling problems); amortized analysis (the accounting and potential methods); advanced data structures (including B-trees, binomial and Fibonacci heaps, representing disjoint sets in data structures); graph algorithms (representing graphs, minimum spanning trees, single-source shortest paths, all-pairs shortest paths, and maximum flow algorithms); sorting networks; matrix operations; linear programming (standard and slack forms); polynomials and the Fast Fourier Transformation (FFT); number theoretic algorithms (including greatest common divisor, modular arithmetic, the Chinese remainder theorem, RSA public-key encryption, primality testing, integer factorization); string matching; computational geometry (including finding the convex hull); NP-completeness (including sample real-world NP-complete problems and their insolvability); approximation algorithms for NP-complete problems (including the traveling salesman problem); reference sections for summations and other mathematical notation, sets, relations, functions, graphs and trees, as well as counting and probability backgrounder (plus geometric and binomial distributions).

From the Publisher

There are books on algorithms that are rigorous but incomplete and others that cover masses of material but lack rigor. Introduction to Algorithms combines rigor and comprehensiveness. The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.

The first edition became the standard reference for professionals and a widely used text in universities worldwide. The second edition features new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming, as well as extensive revisions to virtually every section of the book. In a subtle but important change, loop invariants are introduced early and used throughout the text to prove algorithm correctness. Without changing the mathematical and analytic focus, the authors have moved much of the mathematical foundations material from Part I to an appendix and have included additional motivational material at the beginning.


Product Details

  • Hardcover: 1184 pages
  • Publisher: The MIT Press; 2nd edition (September 1, 2001)
  • Language: English
  • ISBN-10: 0262032937
  • ISBN-13: 978-0262032933
  • Product Dimensions: 9.1 x 8.1 x 2 inches
  • Shipping Weight: 4.6 pounds
  • Average Customer Review: 4.0 out of 5 stars  See all reviews (125 customer reviews)
  • Amazon Best Sellers Rank: #370,545 in Books (See Top 100 in Books)

More About the Authors

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews
119 of 122 people found the following review helpful
4.0 out of 5 stars Great book with one major shortcoming February 11, 2007
Format:Hardcover
What it is:
A very thick text book about a) the mathematics behind algorithms, and b) a treasure chest of random performance tips.

Who it's for:
This book is for those who want or need to gain a decent grasp of the math for analyzing algorithms, and already have a decent understanding of discrete mathematics and probability.

What's good about it:
I really like this book. It's very high quality, well written, concise, and clear, and it's sprinkled with clever little tips to improve the efficiency of common routines.

Tips:
You can watch video recordings of the MIT lectures based on the book. Check out "6.046J Introduction to Algorithms" by searching for "ocw 6.046J" in your favorite search engine. The mathematical prerequisite course is also available in text form on MIT's OpenCourseWare; it can be found by searching for "ocw 6.042J spring 2005".

Warnings:
* Don't bother with this book unless you have a high aptitude for math
* Don't bother with this book unless you're prepared to work at it
* It's not designed as a reference book; instead it's a study book.

Many reviewers have called this book a "reference", but I have to disagree. A good reference book makes information quickly accessible, but this book would require you to read way too much to be called a reference. A practical reference book for algorithms is "The Algorithm Design Manual" by Steven S. Skiena, assuming you don't require proofs.

The Major Shortcoming!
Given that the book's design is most appropriate for learning things you don't already know, it has one major shortcoming: there are no answers to any of the exercises or problems. That makes the book semi-useless for self-study as well as for instructors who believe in the pedagogic value of students being able to check their answers. The instructor's manual is only available to instructors on the condition that they don't make the answers available.
Was this review helpful to you?
196 of 216 people found the following review helpful
3.0 out of 5 stars A definitive guide, but not perfect May 28, 2002
Format:Hardcover
INTRODUCTION TO ALGORITHMS is pretty much the standard textbook in the field of algorithms. In its favor is the fact that it is quite comprehensive, covering a wide range of topics that the beginning student will need to know. On the other hand, it has a tendency towards the confusing and the obscure, with many of the example problems not making a lot of sense. If one decides to purchase this book (and the students will have no choice in this matter, being subject as they are to the whims of their professors), then I recommend that one immediately prints out the "bug correction" page available on the web, as there are several major howlers present in the book, and if one isn't careful then many hours will be lost while one checks and rechecks faulty pseudo-code. In one particularly confused portion of the book, the correction sheet completely replaces three entire pages of the text.
This book covers a huge amount of material, and many of the topics are described quite adequately. Although readers may already be familiar with the numerous data structures that are discussed, the book doesn't assume prior knowledge and goes into quite a lot of detail concerning them. These sections, in particular, are illustrated clearly and offer great reference material that every programmer should have access to. This portion on data structures is one area where the book's conciseness is an advantage. It's simple enough for the beginner to learn from, but it contains more than enough information for the advanced user in need of mental refreshing.
The opening sections that discuss the rudiments of algorithm analysis are also covered competently. The easier subjects don't suffer from the book's shortcomings, as these ideas aren't quite as difficult to understand.
Read more ›
Was this review helpful to you?
144 of 162 people found the following review helpful
3.0 out of 5 stars Academic Masterpiece, Practical White Elephant September 5, 2005
Format:Hardcover|Verified Purchase
First, the good part: this book is an intellectual and academic masterpiece. It would be great for people doing algorithm or other Computer Science research. It's an amazing synthesis of much of the core of a Computer Science degree with Discrete Math and Probability. Oddly, it's more like a math book than a CS book.

Now, the not so good part: for implementers (i.e., programmers), this book is not all that useful. The biggest technical negative is that, for the most part, the authors ignore memory hierarchies and treat everything as if it were running on a computer with infinite cache memory and having everything already loaded there. Granted, the authors spend a huge chunk of time teaching the readers how to do (and prove) cost (or efficiency) analysis on algorithms. So, readers should be able to figure out actual, real-world efficiencies on their own (although there's nothing in this book to illustrate how to modify the analysis to do that). But, since memory hierarchies drastically change the relative efficiencies of algorithms, they should be considered in the original algorithmic analysis and ranking.

From a methodology point of view, another problem is that the authors assume the readers have full knowledge of the algorithms covered in the book. In general, they don't even try to teach the actual algorithms, how they came about, the reasoning behind them, or any method of thought for coming up with other, similar, algorithms. Instead, the authors merely focus on proving the correctness and cost of the pre-existing algorithms. It's like the authors present a beautiful, theoretical, shiny structure sparkling and spinning in the ether. They then explain what parts make up this structure, how they're put together, and how long it takes to use such a structure.
Read more ›
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars Excelent!!
This is an excelente book on algorithms. I am an electrical engineer and in my graduation, although I had contact with programming languages (such as Fortran, C/C++) and basic data... Read more
Published 15 days ago by Sergio Barros
5.0 out of 5 stars THE BOOK IS SO NEW!!!
I LOVE IT!!! THE BEST BOOK IN ALGORITHMS!!! HOPE EVERYONE LIKE IT!!!
THE BOOK IS SOOOOOOOOOOOO CHEAP, ONLY 10 DOLLARS!!!!
Published 3 months ago by Xinran Wang
5.0 out of 5 stars One of the best purchases I've made
In terms of cost to use I've given it, this is one of the best purchases I've ever made. I don't think there's any technical book I've read so many pages of. Read more
Published 3 months ago by FEDERICO J LEBRON
4.0 out of 5 stars Good book for any software developer
This book discusses lots of algorithm and data structure. Most off the parts are easy to follow except for recursion. Read more
Published 4 months ago by Amazon Customer
4.0 out of 5 stars Very Good
The examples had some mistakes, but theme is weel explored and the text are direct and objetctive. Essential reading for who are in the area
Published 4 months ago by Marcio Guimaraens
5.0 out of 5 stars If you love Algorithms...well, you should get out more, but you'll...
A great text for learning (or, in my case, refreshing) a theoretical and analytical basis of algorithms and computational theory.
Published 7 months ago by Brian Grey
5.0 out of 5 stars great quality
almost brand new. really nice book. I got A in this class. and I gave this book to a friend for a free lunch. Now I regret it!!! T.T
Published 10 months ago by dreamer
5.0 out of 5 stars Good Buy
A good book to have. Covers all the necessary topics. Arrived with the expected quality which is what they have described.
Published 12 months ago by Ruchira
5.0 out of 5 stars This is The Book! My main reference for technical interviews...
Simply great! I wish they described how to delete a node in a Red-Black Tree but not even MIT does that in its classes (I guess that they just read this book instead! Read more
Published 14 months ago by marcello834
4.0 out of 5 stars Good product!
This book was a perfect fit for what I needed it for. Purchased it for a college class and it worked great!
Published 14 months ago by Adam Falcon
Search Customer Reviews
Search these reviews only

What Other Items Do Customers Buy After Viewing This Item?


Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Forums

Search Customer Discussions
Search all Amazon discussions

Topic From this Discussion
Suggestions for self-study?
Looks like MIT Open Courseware uses this book in their introduction to algorithms course. http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/CourseHome/index.htm
Mar 30, 2008 by Kristen Hazard |  See all 3 posts
Can Algorithms be implemented to those who can't read or write
Well, in the most simplistic case, everyone does certain things in an algorithmic fashion (lather, rinse, repeat for example), so anyone can understand the concept of an algorithm. Whether or not they can read the pseudocode for implementing an AVL tree is another matter, but I think most... Read More
Aug 16, 2006 by William R. Grazier |  See all 4 posts
Does the text come with a CD?
No.

More info about the book : http://mitpress.mit.edu/algorithms/

You can find video/transcript/audio course at :
>> http://academicearth.org/courses/introduction-to-algorithms
>>... Read More
Sep 18, 2009 by qweqwewqe |  See all 2 posts
Start a new discussion
Topic:
First post:
Prompts for sign-in
 




Look for Similar Items by Category