Your rating(Clear)Rate this item

- Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting,...
- ›
- Customer Reviews

Your rating(Clear)Rate this item

ByJonathan Neveon April 15, 2000

I haven't been into algorithms and such things for very long, and yet I find that, with a bit of patience and good will, it's not that hard to understand, contrary to some other review. Of course, it's a long book, but then, if you can't be perseverant enough to read such a book, the best solution is just to stay home and do something else! If you want the information given in the book, you're jolly well goning to have to read it!

I found this book a very good introduction to algorithms. Of course, as it's a very vast subject, some things were not covered quite as much as some may desire, but this book studies sorting and searching very extensivly, as well as string matching, geometric and mathematical algorithms. It also talks about other subjects such as crytography, data compression, etc, but these are less explained. At any rate, for such subjects as are not fully detailed(in fact, for all subjects), there are references to other books upon the subject.

I think this is a very good book to begin with, because it reaches a compromise between completeness and rigourous mathematical dealing of subjects on the one hand, and readability on the other. It gives explainations about the fundamentals of algorithmics, gives and extensively explains the basic, widely used algorithms, while giving the beginner a view of a wide variety of other subjects, which he can then further investigate if he so desires. After a book such as this, one could very well go onto very advanced algorithmic topics in some very specific field.

And yet, again, it leads you through it step by step so that it fully available to the motivated reader.

I found this book a very good introduction to algorithms. Of course, as it's a very vast subject, some things were not covered quite as much as some may desire, but this book studies sorting and searching very extensivly, as well as string matching, geometric and mathematical algorithms. It also talks about other subjects such as crytography, data compression, etc, but these are less explained. At any rate, for such subjects as are not fully detailed(in fact, for all subjects), there are references to other books upon the subject.

I think this is a very good book to begin with, because it reaches a compromise between completeness and rigourous mathematical dealing of subjects on the one hand, and readability on the other. It gives explainations about the fundamentals of algorithmics, gives and extensively explains the basic, widely used algorithms, while giving the beginner a view of a wide variety of other subjects, which he can then further investigate if he so desires. After a book such as this, one could very well go onto very advanced algorithmic topics in some very specific field.

And yet, again, it leads you through it step by step so that it fully available to the motivated reader.

ByDougabugon May 19, 2001

Prof. Sedgewick is a noted authority on searching and sorting algorithms, and a former student of Knuth's. The text is authoritative, lucid, and detailed. It is also full of mistakes, poorly edited, and much of the code has serious and not so serious bugs.

I have the second, corrected printing of this edition. If you purchase this book, consider buying Bently's "Programming Perls" or some other book on debugging software, and consider Sedgewick's book to be an excellent opportunity to debug a standard reference in CS. In addition to scrutinizing the source code, don't accept any statement in Sedgewick unequivocally. Even his formula for computing the variance of a distribution is incorrect (the accompanying code is correct, though it magnifies the roundoff error; read "Numerical Recipies in C" by Press et al for a more civilized calculation). Many of his proofs have off by one errors, he misdefines the "transitive" property as "associative". Get the lastest printing available, eventually enough students and instructors will have gone through this book to ferret out most of its errors. There are no giant lapses in reasoning, and once it makes it out of beta, this should be a very fine book.

A much better investment would be "Introduction to Algorithms" by Cormen, Lieserson, Rivest, a vastly superior and more interesting text. It has far greater scope of coverage on the subject of algorithms, and is both clearer and more carefully written, one of the most illuminating books I've read. However, volume 1 of Sedgewick, as it focuses solely on searching and sorting, covers these areas in greater depth, and discusses practical implementation issues, such as sentinels and hybrid sorts. As such, Sedgewick is a good compliment to CLR. Bear in mind that it is more densely written than CLR, and hence requires a more careful reading.

I have the second, corrected printing of this edition. If you purchase this book, consider buying Bently's "Programming Perls" or some other book on debugging software, and consider Sedgewick's book to be an excellent opportunity to debug a standard reference in CS. In addition to scrutinizing the source code, don't accept any statement in Sedgewick unequivocally. Even his formula for computing the variance of a distribution is incorrect (the accompanying code is correct, though it magnifies the roundoff error; read "Numerical Recipies in C" by Press et al for a more civilized calculation). Many of his proofs have off by one errors, he misdefines the "transitive" property as "associative". Get the lastest printing available, eventually enough students and instructors will have gone through this book to ferret out most of its errors. There are no giant lapses in reasoning, and once it makes it out of beta, this should be a very fine book.

A much better investment would be "Introduction to Algorithms" by Cormen, Lieserson, Rivest, a vastly superior and more interesting text. It has far greater scope of coverage on the subject of algorithms, and is both clearer and more carefully written, one of the most illuminating books I've read. However, volume 1 of Sedgewick, as it focuses solely on searching and sorting, covers these areas in greater depth, and discusses practical implementation issues, such as sentinels and hybrid sorts. As such, Sedgewick is a good compliment to CLR. Bear in mind that it is more densely written than CLR, and hence requires a more careful reading.

ByDougabugon May 19, 2001

Prof. Sedgewick is a noted authority on searching and sorting algorithms, and a former student of Knuth's. The text is authoritative, lucid, and detailed. It is also full of mistakes, poorly edited, and much of the code has serious and not so serious bugs.

I have the second, corrected printing of this edition. If you purchase this book, consider buying Bently's "Programming Perls" or some other book on debugging software, and consider Sedgewick's book to be an excellent opportunity to debug a standard reference in CS. In addition to scrutinizing the source code, don't accept any statement in Sedgewick unequivocally. Even his formula for computing the variance of a distribution is incorrect (the accompanying code is correct, though it magnifies the roundoff error; read "Numerical Recipies in C" by Press et al for a more civilized calculation). Many of his proofs have off by one errors, he misdefines the "transitive" property as "associative". Get the lastest printing available, eventually enough students and instructors will have gone through this book to ferret out most of its errors. There are no giant lapses in reasoning, and once it makes it out of beta, this should be a very fine book.

A much better investment would be "Introduction to Algorithms" by Cormen, Lieserson, Rivest, a vastly superior and more interesting text. It has far greater scope of coverage on the subject of algorithms, and is both clearer and more carefully written, one of the most illuminating books I've read. However, volume 1 of Sedgewick, as it focuses solely on searching and sorting, covers these areas in greater depth, and discusses practical implementation issues, such as sentinels and hybrid sorts. As such, Sedgewick is a good compliment to CLR. Bear in mind that it is more densely written than CLR, and hence requires a more careful reading.

I have the second, corrected printing of this edition. If you purchase this book, consider buying Bently's "Programming Perls" or some other book on debugging software, and consider Sedgewick's book to be an excellent opportunity to debug a standard reference in CS. In addition to scrutinizing the source code, don't accept any statement in Sedgewick unequivocally. Even his formula for computing the variance of a distribution is incorrect (the accompanying code is correct, though it magnifies the roundoff error; read "Numerical Recipies in C" by Press et al for a more civilized calculation). Many of his proofs have off by one errors, he misdefines the "transitive" property as "associative". Get the lastest printing available, eventually enough students and instructors will have gone through this book to ferret out most of its errors. There are no giant lapses in reasoning, and once it makes it out of beta, this should be a very fine book.

A much better investment would be "Introduction to Algorithms" by Cormen, Lieserson, Rivest, a vastly superior and more interesting text. It has far greater scope of coverage on the subject of algorithms, and is both clearer and more carefully written, one of the most illuminating books I've read. However, volume 1 of Sedgewick, as it focuses solely on searching and sorting, covers these areas in greater depth, and discusses practical implementation issues, such as sentinels and hybrid sorts. As such, Sedgewick is a good compliment to CLR. Bear in mind that it is more densely written than CLR, and hence requires a more careful reading.

ByOleg Popovon October 9, 2000

Errors start right from the beginning with code listing 1.2 ( three errors in four liner) and goes on with ambiguous coding style. Even for a junior programmer it won't be proper to make his code public with such an errors.

If you want to debug authors code for free, this is the book for you. However, considering that it is third edition already and errors are still there, the author probably won't care much if you correct it anyway. Or does he? Yes, I was frustrated, wasting two hours of beautiful Saturday morning on scraping supposedly impeccable code.

His acclaimed teacher Dr. Knuth was smarter providing code in 'toy' language that nobody use, test or bother to correct even for $1K, but he at least never promised to provide you any useful code.

In general, easy readable text, good style, much better than some other books, but yet, superfluous coverage of algorithms analysis. It would have been less misleading if author drops 'in C' for something implementation independent. But on the contrary, the author went on with 'in C++', 'in Java'. Given the pattern of lax coding here, I wonder are those books just as 'slippery'.

As for algorithms in C, I think that even the related parts of "Introductory C" by Petersen will be more useful. It works there.

If you want to debug authors code for free, this is the book for you. However, considering that it is third edition already and errors are still there, the author probably won't care much if you correct it anyway. Or does he? Yes, I was frustrated, wasting two hours of beautiful Saturday morning on scraping supposedly impeccable code.

His acclaimed teacher Dr. Knuth was smarter providing code in 'toy' language that nobody use, test or bother to correct even for $1K, but he at least never promised to provide you any useful code.

In general, easy readable text, good style, much better than some other books, but yet, superfluous coverage of algorithms analysis. It would have been less misleading if author drops 'in C' for something implementation independent. But on the contrary, the author went on with 'in C++', 'in Java'. Given the pattern of lax coding here, I wonder are those books just as 'slippery'.

As for algorithms in C, I think that even the related parts of "Introductory C" by Petersen will be more useful. It works there.

0Comment*|*Was this review helpful to you?YesNoReport abuse#### There was a problem loading comments right now. Please try again later.

Please write at least one word

You must purchase at least one item from Amazon to post a comment

A problem occurred while submitting your comment. Please try again later.

Show more comments

ByJonathan Neveon April 15, 2000

I haven't been into algorithms and such things for very long, and yet I find that, with a bit of patience and good will, it's not that hard to understand, contrary to some other review. Of course, it's a long book, but then, if you can't be perseverant enough to read such a book, the best solution is just to stay home and do something else! If you want the information given in the book, you're jolly well goning to have to read it!

I found this book a very good introduction to algorithms. Of course, as it's a very vast subject, some things were not covered quite as much as some may desire, but this book studies sorting and searching very extensivly, as well as string matching, geometric and mathematical algorithms. It also talks about other subjects such as crytography, data compression, etc, but these are less explained. At any rate, for such subjects as are not fully detailed(in fact, for all subjects), there are references to other books upon the subject.

I think this is a very good book to begin with, because it reaches a compromise between completeness and rigourous mathematical dealing of subjects on the one hand, and readability on the other. It gives explainations about the fundamentals of algorithmics, gives and extensively explains the basic, widely used algorithms, while giving the beginner a view of a wide variety of other subjects, which he can then further investigate if he so desires. After a book such as this, one could very well go onto very advanced algorithmic topics in some very specific field.

And yet, again, it leads you through it step by step so that it fully available to the motivated reader.

I found this book a very good introduction to algorithms. Of course, as it's a very vast subject, some things were not covered quite as much as some may desire, but this book studies sorting and searching very extensivly, as well as string matching, geometric and mathematical algorithms. It also talks about other subjects such as crytography, data compression, etc, but these are less explained. At any rate, for such subjects as are not fully detailed(in fact, for all subjects), there are references to other books upon the subject.

I think this is a very good book to begin with, because it reaches a compromise between completeness and rigourous mathematical dealing of subjects on the one hand, and readability on the other. It gives explainations about the fundamentals of algorithmics, gives and extensively explains the basic, widely used algorithms, while giving the beginner a view of a wide variety of other subjects, which he can then further investigate if he so desires. After a book such as this, one could very well go onto very advanced algorithmic topics in some very specific field.

And yet, again, it leads you through it step by step so that it fully available to the motivated reader.

0Comment*|*Was this review helpful to you?YesNoReport abuse#### There was a problem loading comments right now. Please try again later.

Please write at least one word

You must purchase at least one item from Amazon to post a comment

A problem occurred while submitting your comment. Please try again later.

Show more comments

ByThomasHon January 20, 2000

There are many books about algorithms, just a few can impress and influence people acting on the very threshold between theoretical research and development of complex software. Robert Sedgewick codes very carefully. Some readers might even fail to recognize the fine details in his code. Try to analyse even the simplest 2-3 liners. Compare the program 4.5 (Linked list implementation of a pushdown stack) or 4.10 (FIFO queue linked list implementation) to similar examples given by lesser authors, figure out the the percentage of redundant code given by others compared to this examples (it is 50% to 300% faster for this elementary cases!).

Another example: Look at the insertion sort with a sentinel. I am not aware of any other book showing this simple improvement. Also none of the insertion sorts which I saw in the practice use this so tiny add-on sentinel to achieve the quite dramatic speedup of the process.

Naturally, in the time of 700MHz processors here and there a couple of extra instructions might appear unimportant, but I disagree. This is a book showing the basic algorithmics and programming practices in their best, down to the "two liners", regardless what the complexity of the task is. These little "pearls" of coding are in the real world running countless times behind the scenes and are important. Look carefully, learn, master to code as he does!

As a very modern text, this is one of the few books dealing at least with some of the newer algorithms, like the skip lists or sorting networks. Not enough, though. Maybe we will see more in the next volume. There are also some omitions of the basic algorithms, which I would expect to be in such a book. See the rather terse chapter 7.8 about selection methods and look into Cormen, Leiserson, Rivest to see what I mean.

Despite such complaints, in my eyes this book occupies the worlds top-level rank among texts about algorithms for people who really make software and not just call library functions. I cannot wait to get my hands on the next volume being in preparation.

My (standard) point of criticism is that too many exercises are without answers and actually some of them are so complex that a nice chapter with yet some more algorithms would be in place. But almost every book about algorithms has this fault. On the end of a chapter you often see: Improve this, solve that. Its not good enough for a practitioner but it serves purpose for students.

Extraordinary are the illustrations of algorithm visualizations which I like so much in this book.

My tribut to the author to NOT to use the questionable quotes of famous people on the begin of each chapter, as it lately became an annoying habit. One of the worse examples of such a quote were the alleged words of Albert Einstein "make it as simple as possible but not simpler" placed in an book about C++ (what is a contradiction in itself and quite a presumption on authors part putting himself on a pedestal with... Einstein.)

But exactly such a quote might almost be applied to this text. Congratulations Mr. Sedgewick!

Another example: Look at the insertion sort with a sentinel. I am not aware of any other book showing this simple improvement. Also none of the insertion sorts which I saw in the practice use this so tiny add-on sentinel to achieve the quite dramatic speedup of the process.

Naturally, in the time of 700MHz processors here and there a couple of extra instructions might appear unimportant, but I disagree. This is a book showing the basic algorithmics and programming practices in their best, down to the "two liners", regardless what the complexity of the task is. These little "pearls" of coding are in the real world running countless times behind the scenes and are important. Look carefully, learn, master to code as he does!

As a very modern text, this is one of the few books dealing at least with some of the newer algorithms, like the skip lists or sorting networks. Not enough, though. Maybe we will see more in the next volume. There are also some omitions of the basic algorithms, which I would expect to be in such a book. See the rather terse chapter 7.8 about selection methods and look into Cormen, Leiserson, Rivest to see what I mean.

Despite such complaints, in my eyes this book occupies the worlds top-level rank among texts about algorithms for people who really make software and not just call library functions. I cannot wait to get my hands on the next volume being in preparation.

My (standard) point of criticism is that too many exercises are without answers and actually some of them are so complex that a nice chapter with yet some more algorithms would be in place. But almost every book about algorithms has this fault. On the end of a chapter you often see: Improve this, solve that. Its not good enough for a practitioner but it serves purpose for students.

Extraordinary are the illustrations of algorithm visualizations which I like so much in this book.

My tribut to the author to NOT to use the questionable quotes of famous people on the begin of each chapter, as it lately became an annoying habit. One of the worse examples of such a quote were the alleged words of Albert Einstein "make it as simple as possible but not simpler" placed in an book about C++ (what is a contradiction in itself and quite a presumption on authors part putting himself on a pedestal with... Einstein.)

But exactly such a quote might almost be applied to this text. Congratulations Mr. Sedgewick!

0Comment*|*Was this review helpful to you?YesNoReport abuse#### There was a problem loading comments right now. Please try again later.

Please write at least one word

You must purchase at least one item from Amazon to post a comment

A problem occurred while submitting your comment. Please try again later.

Show more comments

ByA customeron July 7, 1999

It is strange to me why some people love this book so much. Admittedly, Sedgewick is very respected in his field and knows a lot about sorting algorithms, but his book is still dissapointing and very frustrating to read for a beginning computer science student. He seldom includes complete code in his examples, and where there is code, there are sometimes errors in the code.

This reviewer took Sedgewick's class at Princeton University where this book was the required text, and not only was the text poor, his lectures were terribly boring. He himself even recognized that there were errors in his book, and so he allowed his students and TA's to submit errors found in the book. At the end of the year, the list of references to mistakes in the book took up more than three pages.

This review is not the result of a student upset about his grade (an A is fine with me), but is rather an attempt to warn students about the potential pitfalls that may be encountered in reading Sedgewick's book. I suppose this could be a great book for an intermediate or advanced CS student who doesn't mind the sparse and sometimes erroneous code or the terse language used to describe fairly complex ideas. Also, there are some parts of the book that are well written and a pleasure to read. However, I would never recomend this book to anyone interested in learning algorithms for this first time without a fair amount of prior programming experience.

This reviewer took Sedgewick's class at Princeton University where this book was the required text, and not only was the text poor, his lectures were terribly boring. He himself even recognized that there were errors in his book, and so he allowed his students and TA's to submit errors found in the book. At the end of the year, the list of references to mistakes in the book took up more than three pages.

This review is not the result of a student upset about his grade (an A is fine with me), but is rather an attempt to warn students about the potential pitfalls that may be encountered in reading Sedgewick's book. I suppose this could be a great book for an intermediate or advanced CS student who doesn't mind the sparse and sometimes erroneous code or the terse language used to describe fairly complex ideas. Also, there are some parts of the book that are well written and a pleasure to read. However, I would never recomend this book to anyone interested in learning algorithms for this first time without a fair amount of prior programming experience.

Please write at least one word

You must purchase at least one item from Amazon to post a comment

A problem occurred while submitting your comment. Please try again later.

Show more comments

ByA customeron November 2, 1997

Robert does a good job of explaining the algorithms in this book, and there are quite a few algorithms. The sample code is short so you don't have to read through lots of user interface and driver code to get to the actual algorithm, and it is written so that it isn't hard to copy the code into your own programs and get it to work. The chapter on Introduction to the Analasys of Algorithms has lots of math in it, but the rest of the book contains much more code than math. This book is easy to follow, but it also contains a detailed description of the algorithms it presents. I can't wait until Part 2 of this book is published.

Please write at least one word

You must purchase at least one item from Amazon to post a comment

A problem occurred while submitting your comment. Please try again later.

Show more comments

ByA customeron July 18, 1999

I have decided that authors that are not willing to provide detailed solutions to at least the odd-numbered exercises are not worth reading. Why? Because first, where is the evidence that they know the answers to the exercises they present? But more importantly, how is the reader supposed to actually learn from the exercises if he can't see at least one possible solution and the rationale for that solution? This is the same reason why the Deitel & Deitel books are unacceptable. This isn't college anymore. Let's have some answers...if we knew how to do all this stuff already, we wouldn't need the book!

Please write at least one word

You must purchase at least one item from Amazon to post a comment

A problem occurred while submitting your comment. Please try again later.

Show more comments

ByA customeron September 7, 1999

This has to be one of the most difficult texts I've come across. I have been a programmer for over 12 years, I'm used to dealing with language reference manuals, but this one takes the cake. It is full of superfluous waffle. I seems to me that a concept that could be summed up in one or two neat, concise sentences is dragged out for pages, and also, and this is the most annoying thing, said to be referred to in later chapters.

After 6 weeks with this as the prescribed text for the current course that I'm doing, I've decided to go to another text.

After 6 weeks with this as the prescribed text for the current course that I'm doing, I've decided to go to another text.

Please write at least one word

You must purchase at least one item from Amazon to post a comment

A problem occurred while submitting your comment. Please try again later.

Show more comments

ByA customeron November 1, 1997

A major improvement over previous editions. Mathematical computation is used sparingly and then only when needed. This book is a good

blend of theory and practicality. It gives the programmer what he needs now! This book is part 1 of a 2 part series and covers the most important data structures and how to use them.

Part 2 will cover more complex issues.

You should have these books to supplement your other algorithm books. They will help to clarify some specific topics.

blend of theory and practicality. It gives the programmer what he needs now! This book is part 1 of a 2 part series and covers the most important data structures and how to use them.

Part 2 will cover more complex issues.

You should have these books to supplement your other algorithm books. They will help to clarify some specific topics.

Please write at least one word

You must purchase at least one item from Amazon to post a comment

A problem occurred while submitting your comment. Please try again later.

Show more comments

ByA customeron July 30, 1999

Yes, I agree with the "reader from RTP, NC". A technical book with no solutions is worth nothing. People always LEARN from mistakes. If there are no solutions, how would people know their mistakes? Learning is up to the reader. If they cheat by copying the solution, could that hurt you (the author)? Well, that would only hurt themselve down the road because they don't learn. They will pay the price in final exams or job interviews.

Please write at least one word

You must purchase at least one item from Amazon to post a comment

A problem occurred while submitting your comment. Please try again later.

Show more comments

Unlimited FREE Two-Day Shipping, no minimum threshold and more.

Prime members enjoy FREE Two-Day Shipping on millions of eligible items with no minimum threshold.

Back to top

Get to Know Us | Make Money with Us | Amazon Payment Products | Let Us Help You |

|Was this review helpful to you?YesNoReport abuse