## Customer reviews

*4.4 out of 5 stars*

695 customer ratings

Format: HardcoverChange

Price:$89.10+ Free shipping with Amazon Prime

Skip to main content

## Customer reviews

*4.4 out of 5 stars*

#### Top positive review

*4.0 out of 5 stars*Text is pretty good but has pedagogical weaknesses
#### Top critical review

*3.0 out of 5 stars*Good, But Still Very Complex!

#### There was a problem filtering reviews right now. Please try again later.

- Introduction to Algorithms, 3rd Edition (The MIT Press)
- ›
- Customer reviews

695 customer ratings

Format: HardcoverChange

Price:$89.10+ Free shipping with Amazon Prime

Reviewed in the United States on October 6, 2016

I think this is a pretty good book that is easy to read if you have a strong background in proof-based math.

Highlights:

- The introduction (Chapters 1-4) is really good and does a good job setting up all the fundamental concepts of algorithms. I think a lot of people tend to skip over introductions because they think they know all of it already, but this is an introduction that I recommend reading the whole way through.

- The book is a pretty light read (none of the math is too difficult) and each chapter is a good length.

- I think the material on dynamic programming and greedy algorithms was particularly enlightening, and if you read it the whole way through you actually learn how to prove that greedy algorithms work, instead of just being like "let's use a greedy algorithm because it seems right"

- I was able to copy a lot of CLRS code almost verbatim in my programming interviews and pass them.

- The figures are really well done and informative.

Drawbacks:

- The pseudocode has a lot of one-letter variable names, and while this follows the tradition of pure math, it also makes understanding the algorithms more difficult than it should be.

- Sometimes the pseudocode is not the "easiest" possible pseudocode (for example, merge sort), and I think it would be better if the authors presented a simpler version of the pseudocode first and then extended it to the optimal version. But then I guess CLRS would be even longer than it already is.

- The arrays are 1-indexed, which makes it trickier to convert to code. Also there are some sections of the textbook (the counting sort section) where some of the arrays are 0-indexed and other arrays are 1-indexed, which is just weird.

- I think the material on graphs, particularly the derivations, could be done in a more engaging and intuitive way. The derivations in Chapters 22-24 were a long series of small uninteresting lemmas, instead of a small number of harder, more insightful theorems. I found derivations elsewhere on the internet that were a lot more interesting and built more intuition about why the procedures worked. I feel like the rest of the book is pretty good though, so maybe all the graph stuff was written by a separate person who is not very good at explaining things.

Highlights:

- The introduction (Chapters 1-4) is really good and does a good job setting up all the fundamental concepts of algorithms. I think a lot of people tend to skip over introductions because they think they know all of it already, but this is an introduction that I recommend reading the whole way through.

- The book is a pretty light read (none of the math is too difficult) and each chapter is a good length.

- I think the material on dynamic programming and greedy algorithms was particularly enlightening, and if you read it the whole way through you actually learn how to prove that greedy algorithms work, instead of just being like "let's use a greedy algorithm because it seems right"

- I was able to copy a lot of CLRS code almost verbatim in my programming interviews and pass them.

- The figures are really well done and informative.

Drawbacks:

- The pseudocode has a lot of one-letter variable names, and while this follows the tradition of pure math, it also makes understanding the algorithms more difficult than it should be.

- Sometimes the pseudocode is not the "easiest" possible pseudocode (for example, merge sort), and I think it would be better if the authors presented a simpler version of the pseudocode first and then extended it to the optimal version. But then I guess CLRS would be even longer than it already is.

- The arrays are 1-indexed, which makes it trickier to convert to code. Also there are some sections of the textbook (the counting sort section) where some of the arrays are 0-indexed and other arrays are 1-indexed, which is just weird.

- I think the material on graphs, particularly the derivations, could be done in a more engaging and intuitive way. The derivations in Chapters 22-24 were a long series of small uninteresting lemmas, instead of a small number of harder, more insightful theorems. I found derivations elsewhere on the internet that were a lot more interesting and built more intuition about why the procedures worked. I feel like the rest of the book is pretty good though, so maybe all the graph stuff was written by a separate person who is not very good at explaining things.

41 people found this helpful

Reviewed in the United States on March 20, 2016

For background, I am a not-so-sharp CS undergrad that used this book for an intro. to algorithms class. I've done linear algebra, struggled my way through a "calculus" probability course, and enjoyed implementing many typical data structures. My learning style relies on simple examples (especially visual) accompanied by a concise explanation. Here are my thoughts:

This book is impressive! It covers a lot of subject matter and is clearly worded. However, you're going to get lost because this often reads more like a reference manual than a conversation that appeals to intuition. You'll be pushed into analyzing algorithms for theoretical data structures that you fuzzily remember (if at all). But, nonetheless, throw enough man hours into this book and you will learn concrete approaches to determining just how hard you're making the computer work.

My biggest criticism is that, as an *introduction*, this book doesn't do the best job at warming up readers to new tools and methodologies. This is an 'eh, just push them into the deep end' kind of approach to learning.

This book is impressive! It covers a lot of subject matter and is clearly worded. However, you're going to get lost because this often reads more like a reference manual than a conversation that appeals to intuition. You'll be pushed into analyzing algorithms for theoretical data structures that you fuzzily remember (if at all). But, nonetheless, throw enough man hours into this book and you will learn concrete approaches to determining just how hard you're making the computer work.

My biggest criticism is that, as an *introduction*, this book doesn't do the best job at warming up readers to new tools and methodologies. This is an 'eh, just push them into the deep end' kind of approach to learning.

110 people found this helpful

Search

Sort by

Top rated

Filter by

All reviewers

All stars

All formats

Text, image, video

Showing 1-10 of 394 reviews

Reviewed in the United States on March 20, 2016
22 comments
Report abuse

For background, I am a not-so-sharp CS undergrad that used this book for an intro. to algorithms class. I've done linear algebra, struggled my way through a "calculus" probability course, and enjoyed implementing many typical data structures. My learning style relies on simple examples (especially visual) accompanied by a concise explanation. Here are my thoughts:

This book is impressive! It covers a lot of subject matter and is clearly worded. However, you're going to get lost because this often reads more like a reference manual than a conversation that appeals to intuition. You'll be pushed into analyzing algorithms for theoretical data structures that you fuzzily remember (if at all). But, nonetheless, throw enough man hours into this book and you will learn concrete approaches to determining just how hard you're making the computer work.

My biggest criticism is that, as an *introduction*, this book doesn't do the best job at warming up readers to new tools and methodologies. This is an 'eh, just push them into the deep end' kind of approach to learning.

This book is impressive! It covers a lot of subject matter and is clearly worded. However, you're going to get lost because this often reads more like a reference manual than a conversation that appeals to intuition. You'll be pushed into analyzing algorithms for theoretical data structures that you fuzzily remember (if at all). But, nonetheless, throw enough man hours into this book and you will learn concrete approaches to determining just how hard you're making the computer work.

My biggest criticism is that, as an *introduction*, this book doesn't do the best job at warming up readers to new tools and methodologies. This is an 'eh, just push them into the deep end' kind of approach to learning.

110 people found this helpful

Helpful

Reviewed in the United States on October 6, 2016

I think this is a pretty good book that is easy to read if you have a strong background in proof-based math.

Highlights:

- The introduction (Chapters 1-4) is really good and does a good job setting up all the fundamental concepts of algorithms. I think a lot of people tend to skip over introductions because they think they know all of it already, but this is an introduction that I recommend reading the whole way through.

- The book is a pretty light read (none of the math is too difficult) and each chapter is a good length.

- I think the material on dynamic programming and greedy algorithms was particularly enlightening, and if you read it the whole way through you actually learn how to prove that greedy algorithms work, instead of just being like "let's use a greedy algorithm because it seems right"

- I was able to copy a lot of CLRS code almost verbatim in my programming interviews and pass them.

- The figures are really well done and informative.

Drawbacks:

- The pseudocode has a lot of one-letter variable names, and while this follows the tradition of pure math, it also makes understanding the algorithms more difficult than it should be.

- Sometimes the pseudocode is not the "easiest" possible pseudocode (for example, merge sort), and I think it would be better if the authors presented a simpler version of the pseudocode first and then extended it to the optimal version. But then I guess CLRS would be even longer than it already is.

- The arrays are 1-indexed, which makes it trickier to convert to code. Also there are some sections of the textbook (the counting sort section) where some of the arrays are 0-indexed and other arrays are 1-indexed, which is just weird.

- I think the material on graphs, particularly the derivations, could be done in a more engaging and intuitive way. The derivations in Chapters 22-24 were a long series of small uninteresting lemmas, instead of a small number of harder, more insightful theorems. I found derivations elsewhere on the internet that were a lot more interesting and built more intuition about why the procedures worked. I feel like the rest of the book is pretty good though, so maybe all the graph stuff was written by a separate person who is not very good at explaining things.

Highlights:

- The introduction (Chapters 1-4) is really good and does a good job setting up all the fundamental concepts of algorithms. I think a lot of people tend to skip over introductions because they think they know all of it already, but this is an introduction that I recommend reading the whole way through.

- The book is a pretty light read (none of the math is too difficult) and each chapter is a good length.

- I think the material on dynamic programming and greedy algorithms was particularly enlightening, and if you read it the whole way through you actually learn how to prove that greedy algorithms work, instead of just being like "let's use a greedy algorithm because it seems right"

- I was able to copy a lot of CLRS code almost verbatim in my programming interviews and pass them.

- The figures are really well done and informative.

Drawbacks:

- The pseudocode has a lot of one-letter variable names, and while this follows the tradition of pure math, it also makes understanding the algorithms more difficult than it should be.

- Sometimes the pseudocode is not the "easiest" possible pseudocode (for example, merge sort), and I think it would be better if the authors presented a simpler version of the pseudocode first and then extended it to the optimal version. But then I guess CLRS would be even longer than it already is.

- The arrays are 1-indexed, which makes it trickier to convert to code. Also there are some sections of the textbook (the counting sort section) where some of the arrays are 0-indexed and other arrays are 1-indexed, which is just weird.

- I think the material on graphs, particularly the derivations, could be done in a more engaging and intuitive way. The derivations in Chapters 22-24 were a long series of small uninteresting lemmas, instead of a small number of harder, more insightful theorems. I found derivations elsewhere on the internet that were a lot more interesting and built more intuition about why the procedures worked. I feel like the rest of the book is pretty good though, so maybe all the graph stuff was written by a separate person who is not very good at explaining things.

Reviewed in the United States on January 31, 2019

My process for studying this text is to read a section at a time and walk through the examples illustrated. I often struggle with the math that is being demonstrated as a proof for the algorithm. I then research an actual example of the topic discussed and watch a youtube video that demonstrates it in application.

I then re-read the section and take notes. I find that I feel somewhat lost at first when the book introduces a topic that I am unfamiliar with, but after reviewing it from a high level (youtube video) it helps me understand the algorithm on a surface level. Once I understand it in its simplest terms, the proofs become much simpler and they make a lot of sense.

I think to get everything out of this text you should be comfortable with data-structures, linear algebra and discrete mathematics. I found discrete math and linear algebra to be difficult courses, but this text is increasing my confidence in how much I had learned in those courses.

Great text but at times I feel lost. I wish the examples were more comprehensive at times.

I then re-read the section and take notes. I find that I feel somewhat lost at first when the book introduces a topic that I am unfamiliar with, but after reviewing it from a high level (youtube video) it helps me understand the algorithm on a surface level. Once I understand it in its simplest terms, the proofs become much simpler and they make a lot of sense.

I think to get everything out of this text you should be comfortable with data-structures, linear algebra and discrete mathematics. I found discrete math and linear algebra to be difficult courses, but this text is increasing my confidence in how much I had learned in those courses.

Great text but at times I feel lost. I wish the examples were more comprehensive at times.

Reviewed in the United States on June 3, 2016

This is probably the most well known and most used textbook on the subject, and with good reason. An excellent resource, covering just about everything you need to know for a good understanding of Algorithms. (side tip, my friends in the industry call this the "How To Pass a Google Interview" book).

My only complaint is that the binding has completely stated disintegrating after only 9 weeks of use. All of chapters 15 and 16 are completely falling out of my copy (and this is getting worse). Very disappointing as I plan on using it for a long time.

My only complaint is that the binding has completely stated disintegrating after only 9 weeks of use. All of chapters 15 and 16 are completely falling out of my copy (and this is getting worse). Very disappointing as I plan on using it for a long time.

Reviewed in the United States on October 31, 2015

I'm reviewing this for what it is: An academic text that also serves as a collective document of algorithms for the community (computer science, etc.). This is not a beginner text. It's a first-class algorithms book that is very academically rigorous. That's not a put-down.

Great reference and great read when you need to get out of the box and think creatively.

For a more approachable intro to algorithms, check out Sedgewick's book. That book also has a companion website and Coursera course. it's hard to go wrong with that combo.

Great reference and great read when you need to get out of the box and think creatively.

For a more approachable intro to algorithms, check out Sedgewick's book. That book also has a companion website and Coursera course. it's hard to go wrong with that combo.

Reviewed in the United States on October 29, 2018

yes, yes, it's an algorithm book but it looks like they expect you to be fluent in math so don't expect a primer here. great at making me looks smart to people who look at my bookshelf. I found 'easier' descriptions of common algorithms online but If you already know math like a boss, this would be pretty helpful. Better bring some water because its also pretty dry reading.

Reviewed in the United States on April 22, 2014

I am a math major who has taken a few cs courses from the cs department at my university. Up until reading this book cs has always been a bit of a mystery to me. I have heard a million and one time how cs is based on mathematics but aside from understanding the idea of traversing through arrays as you would the indexes of a sequence, I have never really seen the connection between the two subjects. This book does an amazing job of demonstrating the mathematical basis of cs. From the very beginning when the authors deconstruct the for-loop used in a insert-sort into a variation on mathematical induction the lines between the two subjects are made crystal clear.

I would agree that a pretty solid understanding of mathematics is required for this book, and I can see why someone coming from a typical undergraduate education in cs would find it difficult and intimidating to tackle this book. It definitely does not teach you how to program or the basics of object oriented design as it proceeds to teach you about structure and design of algorithms. I can also understand why someone hoping to simply get a job as a "programmer" or "software engineer" would not necessarily be well served by this book. The authors are very upfront on this note though, and specifically warn prospective students that they are not going to teach them how to "code" solutions to common cs problems. What they are going to teach them is the fundamentals of algorithm analysis and design. How valuable prospective students find this approach is going to depend entirely on what exactly they hope to do with their understanding of computer science. If you want to learn how to code and be paid to be a developer (not a bad line of work by any stretch of the imagination) you might want to look else where.

For someone coming from a mathematics background though (whether it's an applied field such as statistics or numerical analysis or a pure field like abstract algebra or analysis) this is an excellent introduction to the field of computer science. If you are coming from a math background the analysis and structure of algorithms as presented in this book will instantly click. For me personally I loved the fact that the underlining mathematical basis of cs did not get lost in details of coding or working within certain developmental environments like Eclipse. Again, probably not an ideal choice for someone looking to learn this particular subjects, but definitely a good choice for math majors (or prospective cs grad students).

I would agree that a pretty solid understanding of mathematics is required for this book, and I can see why someone coming from a typical undergraduate education in cs would find it difficult and intimidating to tackle this book. It definitely does not teach you how to program or the basics of object oriented design as it proceeds to teach you about structure and design of algorithms. I can also understand why someone hoping to simply get a job as a "programmer" or "software engineer" would not necessarily be well served by this book. The authors are very upfront on this note though, and specifically warn prospective students that they are not going to teach them how to "code" solutions to common cs problems. What they are going to teach them is the fundamentals of algorithm analysis and design. How valuable prospective students find this approach is going to depend entirely on what exactly they hope to do with their understanding of computer science. If you want to learn how to code and be paid to be a developer (not a bad line of work by any stretch of the imagination) you might want to look else where.

For someone coming from a mathematics background though (whether it's an applied field such as statistics or numerical analysis or a pure field like abstract algebra or analysis) this is an excellent introduction to the field of computer science. If you are coming from a math background the analysis and structure of algorithms as presented in this book will instantly click. For me personally I loved the fact that the underlining mathematical basis of cs did not get lost in details of coding or working within certain developmental environments like Eclipse. Again, probably not an ideal choice for someone looking to learn this particular subjects, but definitely a good choice for math majors (or prospective cs grad students).

Reviewed in the United States on September 18, 2019

This is an academic textbook containing about 1300 pages, weighing in at about 5-1/4 lbs.

FIRST:

The *contents* of this text are excellent -- this is an excellent learning and *reference* book for every computer science major to have and keep throughout their career.

SECOND:

The *physical* book itself is difficult to read, and is rapidly losing integrity. I expect it to fully fall apart by midterm. So much for keeping this textbook throughout one's career.

Issue #1 - The ink on the page varies significantly throughout the book. Some pages are so light of ink they are difficult to read -- especially for the smaller fonts/printed information.

Issue #2 - After 4 days into class, the physical book is literally disintegrating. The binding is coming apart. See the pictures.

Initially I purchased this book from Galaxy Books because of their significantly lower price ($65.46, about half of some of the other sellers). I guess I got what I paid for, ... all of the contents, with such poor physical qualities such that, by the time I complete the class/read the book, the book will no longer be a book, but a collection of ~1300 independent and marginally readable pages.

THIRD:

I don't know who physically printed this particular printing of this particular book. I don't want to know. I simply want a book that sufficiently satisfies its intended good faith purpose.

I expected better (sufficient quality) from the publisher: McGraw Hill / MIT Press.

Galaxy Books essentially says "tough luck" (as I bought the book more than 30-days ago).

Let's see if Amazon stands behind their marketplace.

(The 1-star rating should be read as a *negative* one-star, as this is not a neutral experience, but a harmful experience -- it sucked time away into the abyss that could have otherwise been used to live a more productive life).

FIRST:

The *contents* of this text are excellent -- this is an excellent learning and *reference* book for every computer science major to have and keep throughout their career.

SECOND:

The *physical* book itself is difficult to read, and is rapidly losing integrity. I expect it to fully fall apart by midterm. So much for keeping this textbook throughout one's career.

Issue #1 - The ink on the page varies significantly throughout the book. Some pages are so light of ink they are difficult to read -- especially for the smaller fonts/printed information.

Issue #2 - After 4 days into class, the physical book is literally disintegrating. The binding is coming apart. See the pictures.

Initially I purchased this book from Galaxy Books because of their significantly lower price ($65.46, about half of some of the other sellers). I guess I got what I paid for, ... all of the contents, with such poor physical qualities such that, by the time I complete the class/read the book, the book will no longer be a book, but a collection of ~1300 independent and marginally readable pages.

THIRD:

I don't know who physically printed this particular printing of this particular book. I don't want to know. I simply want a book that sufficiently satisfies its intended good faith purpose.

I expected better (sufficient quality) from the publisher: McGraw Hill / MIT Press.

Galaxy Books essentially says "tough luck" (as I bought the book more than 30-days ago).

Let's see if Amazon stands behind their marketplace.

(The 1-star rating should be read as a *negative* one-star, as this is not a neutral experience, but a harmful experience -- it sucked time away into the abyss that could have otherwise been used to live a more productive life).

Reviewed in the United States on December 2, 2018

I know this is the classic algorithms book but I found other ones superior. Look at DPV or KT (Kleinberg / Tardos) for better algorithm references that are clear and concise to the point unlike CLRS which is just an encyclopedia of algorithms (bunch of stuff which isn't important).

Reviewed in the United States on October 11, 2019

I have reviewed everything in the first 2/3 or so of this book before every major interview period in the last 5 years and I credit it with keeping the book-smarts sharp. The writing style is much more along the lines of "we proved it so it must be so", but does occasionally have helpful analogies or non-mathematical summaries of various topics.

This is an especially good resource for diving into techniques for dynamic programming.

This is an especially good resource for diving into techniques for dynamic programming.

- ←Previous page
- Next page→

There's a problem loading this menu right now.

Get fast, free delivery with Amazon Prime

Prime members enjoy FREE Two-Day Delivery and exclusive access to music, movies, TV shows, original audio series, and Kindle books.

Back to top

Make Money with Us

Amazon Payment Products

- Conditions of Use
- Privacy Notice
- Interest-Based Ads
- © 1996-2020, Amazon.com, Inc. or its affiliates