Well, let me do Jonathan’s job for him on one of those.
Introduction to Algorithms by Cormen, Leiserson, Rivest, and (as of the second edition) Stein is a first-rate single-volume algorithms text, covering a good selection of topics and providing nice clean pseudocode for most of what they do. The explanations are clear and concise. (Readers whose tolerance for mathematics is low may want to look elsewhere, though.)
Two obvious comparisons: Knuth’s TAOCP is wonderful but: very, very long; now rather outdated in the range of algorithms it covers; describes algorithms with wordy descriptions, flowcharts, and assembly language for a computer of Knuth’s own invention. When you need Knuth, you really need Knuth, but mostly you don’t. Sedgwick’s Algorithms (warning: it’s many years since I read this, and recent editions may be different) is shallower, less clearly written, and frankly never gave me the same the-author-is-really-smart feeling that CLRS does.
(If you’re going to get two algorithms books rather than one, a good complement to CLRS might be Skiena’s “The algorithm design manual”, more comments on which you can find on my website.)
Thanks. I really didn’t have the ability to easily recall names of what few alternatives I’ve read (although in the area of programming in general, there are dozens of highly recommended books I’ve actually read—Design Patterns (ok), Pragmatic Programmer (ok), Code Complete (ok), Large Scale C++ Software Design (ok), Analysis Patterns (horrible), Software Engineering with Java (textbook, useless), Writing Solid Code (ok), object-oriented software construction (ok, sells the idea of design-by-contract), and I could continue listing 20 books, but what’s the point. These are hardly textbooks anyway.
On algorithms, other than Knuth (after my disrecommendation of his work, I just bought his latest, “Combinatorial Algorithms, part 1”), really the only other one I read is “Data Structures in C” or some similar lower level textbook, which was unobjectionable but did not have the same quality.
You’re welcome! (Of the other books you mention that I’ve read, I agree with your assessment except that I’d want to subdivide the “ok” category a bit.)
I find it superior to CLRS although I have not read either completely.
In my undergrad CS course we used CLRS for Intro to Algorithms and Kleinberg Tardos was a recommended text for an advanced(but still mandatory, for CS) algorithms course, but I feel it does not have prerequisites much higher than CLRS does.
I feel that while KT ‘builds on’ knowledge and partitions algorithms by paradigm(and it develops each of these ‘paradigms’—i.e. Dynamic Programming, Greedy, Divide and Conquer— from the start) CLRS is more like a cookbook or a list of algorithms.
I find it superior to CLRS although I have not read either completely.
In my undergrad CS course we used CLRS for Intro to Algorithms and Kleinberg Tardos was a recommended text for an advanced(but still mandatory, for CS) algorithms course, but I feel it does not have prerequisites much higher than CLRS does.
I feel that while KT ‘builds on’ knowledge and partitions algorithms by paradigm(and it develops each of these ‘paradigms’—i.e. Dynamic Programming, Greedy, Divide and Conquer— from the start) CLRS is more like a cookbook or a list of algorithms.
I find it superior to CLRS although I have not read either completely.
In my undergrad CS course we used CLRS for Intro to Algorithms and Kleinberg Tardos was a recommended text for an advanced(but still mandatory, for CS) algorithms course, but I feel it does not have prerequisites much higher than CLRS does.
I feel that while KT ‘builds on’ knowledge and partitions algorithms by paradigm(and it develops each of these ‘paradigms’—i.e. Dynamic Programming, Greedy, Divide and Conquer— from the start) CLRS is more like a cookbook or a list of algorithms.
Manber’s “Algorithms—a creative approach” is better than Cormen, which I agree is better than Knuth. It’s also better than Aho’s book on algorithms as well. It’s better in that you can study it by yourself with more profit. On the other hand, Cormen’s co-author has a series of video lectures at MIT’s OCW site that you can follow along with.
What about Manber’s book makes it more fruitful for self-study than CLRS? How does it compare with CLRS in other respects? (Coverage of algorithms and data structures; useful pseudocode; mathematical rigour; …)
Well, let me do Jonathan’s job for him on one of those.
Introduction to Algorithms by Cormen, Leiserson, Rivest, and (as of the second edition) Stein is a first-rate single-volume algorithms text, covering a good selection of topics and providing nice clean pseudocode for most of what they do. The explanations are clear and concise. (Readers whose tolerance for mathematics is low may want to look elsewhere, though.)
Two obvious comparisons: Knuth’s TAOCP is wonderful but: very, very long; now rather outdated in the range of algorithms it covers; describes algorithms with wordy descriptions, flowcharts, and assembly language for a computer of Knuth’s own invention. When you need Knuth, you really need Knuth, but mostly you don’t. Sedgwick’s Algorithms (warning: it’s many years since I read this, and recent editions may be different) is shallower, less clearly written, and frankly never gave me the same the-author-is-really-smart feeling that CLRS does.
(If you’re going to get two algorithms books rather than one, a good complement to CLRS might be Skiena’s “The algorithm design manual”, more comments on which you can find on my website.)
Thanks. I really didn’t have the ability to easily recall names of what few alternatives I’ve read (although in the area of programming in general, there are dozens of highly recommended books I’ve actually read—Design Patterns (ok), Pragmatic Programmer (ok), Code Complete (ok), Large Scale C++ Software Design (ok), Analysis Patterns (horrible), Software Engineering with Java (textbook, useless), Writing Solid Code (ok), object-oriented software construction (ok, sells the idea of design-by-contract), and I could continue listing 20 books, but what’s the point. These are hardly textbooks anyway.
On algorithms, other than Knuth (after my disrecommendation of his work, I just bought his latest, “Combinatorial Algorithms, part 1”), really the only other one I read is “Data Structures in C” or some similar lower level textbook, which was unobjectionable but did not have the same quality.
You’re welcome! (Of the other books you mention that I’ve read, I agree with your assessment except that I’d want to subdivide the “ok” category a bit.)
I would like to suggest Algorithm Design by Kleinberg and Tardos over CLRS.
I find it superior to CLRS although I have not read either completely.
In my undergrad CS course we used CLRS for Intro to Algorithms and Kleinberg Tardos was a recommended text for an advanced(but still mandatory, for CS) algorithms course, but I feel it does not have prerequisites much higher than CLRS does.
I feel that while KT ‘builds on’ knowledge and partitions algorithms by paradigm(and it develops each of these ‘paradigms’—i.e. Dynamic Programming, Greedy, Divide and Conquer— from the start) CLRS is more like a cookbook or a list of algorithms.
I would like to suggest \href{Algorithm Design by Kleinberg and Tardos}{http://www.cs.sjtu.edu.cn/~jiangli/teaching/CS222/files/materials/Algorithm%20Design.pdf} over CLRS.
I find it superior to CLRS although I have not read either completely.
In my undergrad CS course we used CLRS for Intro to Algorithms and Kleinberg Tardos was a recommended text for an advanced(but still mandatory, for CS) algorithms course, but I feel it does not have prerequisites much higher than CLRS does.
I feel that while KT ‘builds on’ knowledge and partitions algorithms by paradigm(and it develops each of these ‘paradigms’—i.e. Dynamic Programming, Greedy, Divide and Conquer— from the start) CLRS is more like a cookbook or a list of algorithms.
I would like to suggest \href{Algorithm Design by Kleinberg and Tardos}{http://www.cs.sjtu.edu.cn/~jiangli/teaching/CS222/files/materials/Algorithm%20Design.pdf} over CLRS.
I find it superior to CLRS although I have not read either completely.
In my undergrad CS course we used CLRS for Intro to Algorithms and Kleinberg Tardos was a recommended text for an advanced(but still mandatory, for CS) algorithms course, but I feel it does not have prerequisites much higher than CLRS does.
I feel that while KT ‘builds on’ knowledge and partitions algorithms by paradigm(and it develops each of these ‘paradigms’—i.e. Dynamic Programming, Greedy, Divide and Conquer— from the start) CLRS is more like a cookbook or a list of algorithms.
Manber’s “Algorithms—a creative approach” is better than Cormen, which I agree is better than Knuth. It’s also better than Aho’s book on algorithms as well. It’s better in that you can study it by yourself with more profit. On the other hand, Cormen’s co-author has a series of video lectures at MIT’s OCW site that you can follow along with.
What about Manber’s book makes it more fruitful for self-study than CLRS? How does it compare with CLRS in other respects? (Coverage of algorithms and data structures; useful pseudocode; mathematical rigour; …)