Algorithms Books
Related Subjects: Compression Speech Recognition Computational Algebra Pseudorandom Numbers Animated Sorting and Searching Complexity Publications
More Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250

Used price: $53.88

Excellent literature review, Great Theories But... ExpensiveReview Date: 2000-12-21
A nice book on machine schedulingReview Date: 2001-10-15

Used price: $32.00

Synthesis at many levelsReview Date: 2006-12-16
The first hundred pages or so lay out mathematical basics. Graph theory pervades later discussion, so it gets a thorough review in this early section. There's also a little about boolean logic - not the kids' stuff, but a variety of representations, plenty to get the reader's mind set into mathematical orientation of the rest of the book.
Part II, chapters 4-6 are, for me, the real meat of the presentation. They deal with the higher, architectural levels of synthesis, with a strong discussion of scheduling of shared resources. This book predates modern system-on-chip design, so it doesn't get to the level of on-chip busses and networks. The datapath and resource management issues are just as important today as when this book was written, though. And, even if it omits references from the ten-plus years since its writing, it gives today's reader a solid preparation for creating tools on the cutting edge of system synthesis.
The remaining chapters, although thorough and competent, are not in the center of my interests. They deal at length with decomposition of logic and control into gate-level constructs. De Micheli's discussion goes far beyond freshman logic design since, as he points out, "Most classical methods are not practical for circuits of usual size." Chapter 10 goes beyond classic and/or decomposition, and well into the quirks and limitations of real cell libraries. FPGAs are mentioned only briefly - understandable, since they had not acquired the importance given them by the decade-plus of technology shifts since the book was written. A modern successor to this book would probably have a lot more to say about FPGA-based implementation, and would probably address placement and routing issues that De Micheli had no need to address.
Despite its 1994 copyright date, this book is still current and relevant. It gives its reader a broad and rigorous start on industrial-strength synthesis. I recommend this highly to anyone seriously involved in creating tools for logic and system design.
//wiredweird
Well-written, informative bookReview Date: 2000-08-22

Used price: $99.76

Electromagnetism CAN be fun!Review Date: 2001-05-17
Here, the reader can simulate almost any combination of magnets, conductors and external fields and visualize the result in a number of different ways. So this book and its accompanying software will find use in grade school, universities and industry. The visual impact of the approach used by John Beeteson should prove inspirational to younger students. I would recommend that any teacher involved in this subject should buy this book and try it out.
I have used the software on a W98 notebook computer and on a powerful dual processor NT machine. It works just fine in both cases.
Review of "Visualising Magnetic Fields"Review Date: 2001-02-12
The use of numerical analysis tools is widely regarded as essential for more than the simplest of geometries. Frequently these tools require a substantial knowledge in order to be able to apply them to the problem at hand. With the use of the author's visualisation of numerical solvers in action the user is able to understand how the computation process develops in solving in 2D a mathematical representation of the field problem. This understanding is essential if the reader wishes to progress to the more challenging 3D simulation environment, especially for those creating rather than just applying the simulation software.
Overall I found the book useful as a means of introducing the subject and would recommend it to students in their last year of school or as an introductory text in undergraduate studies. In addition to students of Physics and Electrical Engineering, the underlying concepts covered are similar to those for mechanical analysis (stress, strain, distortion) and computational fluid dynamics, including heat flow problems. Thus students in the other Engineering disciplines will find something useful in the book and especially the accompanying software.

Used price: $2.66

A good tutorial but...Review Date: 2002-11-06
A review of using the textbookReview Date: 2003-11-11
Any reader with some background in linear programming and queueing theory sould be able to enjoy this book tremendously.

Complex Topics. Not so Complex Book.Review Date: 2008-05-02
But, I personally think the topics covered are complex to begin with. So, it takes this book and couple of books for reference to understand the topics completely. If you want to develop new efficient algorithms, then this is the book to begin with. Over all a very good book. Would definitely recommend it.
Excellent Book Review Date: 2008-04-24
Thanks Guys.
The best textbook on algorithms, but it is not a programming book.Review Date: 2008-06-06
I found the reading to be easier than Knuth on similar topics, but you still need to have sufficient mathematical background in order to keep up (statistics, discrete math, some calculus). Also, unlike many technical books I've read recently, I did not find any mistakes, not even a typo.
Some people are not aware that the MIT Open Courseware website has some excellent free video course lectures that use this book. I highly recommend at least viewing the first three or four of those lectures if you are new to this topic because they compliment this book very well. Make sure you understand the first four chapters of this book before moving on to other topics.
Also, since it had been a while since I had the math as an undergraduate, I was relieved to learn that this book had several appendices that provided a review of the math topics required by the book.
The only negative about the book is that it does not provide answers to any of the exercises at the end of the chapters, so you really need to use this book in conjunction with a course in order to be able to check your progress and how well you are learning the information. If you're not using this book with a course, check the MIT Open Courseware website that I mentioned previously. It has some sample assignments you can use.
excellent resourceReview Date: 2008-05-12
This version has NO CDReview Date: 2008-05-29
The first one is published by the MIT Press, with the title "Introduction to Algorithms". This one has no CD. This is the one Amazon currently carries, so if you buy from Amazon, you get no CD.
The second one is published by McGraw-Hill, also with the title "Introduction to Algorithms". This one also has no CD.
The third one is published by McGraw-Hill too, but has the title "Introduction to Algorithms and Java CD-ROM". This is the one with the CD. It's much more expensive than the other two.
The CD in the third version contains implementations of the algorithms in Java.
To find someone that carries the CD version, search for this ISBN-13 number: 9780072970548 , or for "Introduction to Algorithms and Java CD-ROM" .
Note: Some listings that come up for the ISBN number will not be the correct version. Look carefully for "and Java CD-ROM" before buying.

Used price: $3.21
Collectible price: $119.80

Decent but...Review Date: 2008-06-22
And when it comes to be basics, reading this book can be more like slogging. The information is there, but it isn't quiet clear. Some topics have examples that do most of the explaining, while other topics lack a nice example that would explain it.
Life is a Lex. Review Date: 2008-06-02
The best for getting the theoretical foundation of compilersReview Date: 2007-06-12
The new cover is awesome! Long live the Purple Dragon!Review Date: 2007-05-04
Warmed over ghost of past excellenceReview Date: 2007-05-18
The book presents parser generation in layers of increasing complexity, from SLR to LR to LALR, where LALR is presented as the penultimate algorithm, though LALR parsers can only handle a subset of the grammars that LR can handle. The justification for this is that the original Knuth LR algorithm is intractable for large grammars. However, an efficient, fully correct, approach for LR parser generation was published in 1977, and on top of that it appears easier to implement than efficient LALR parser generation! The red dragon book's original authors simply cannot have been unaware of this research result, but I suspect that they elected to warm over the "green dragon book" (published in 1977) rather than incorporate the state of the art as of 1986 into the "red dragon book". Now here we are another 20 years later, and as near as I can tell from reading through available online information, the "purple dragon book" is perpetuating this omission. The result of the red dragon book is that we have an entire generation of computer scientists who have been mislead to think that LALR is somehow superior to LR, and the purple dragon book is setting things up for yet another generation to be mislead.

Used price: $8.00

Good book for CS people or people who need to find a job in CS.Review Date: 2008-05-23
Worth to ownReview Date: 2008-05-12
DecentReview Date: 2008-04-22
Damn Good BookReview Date: 2008-04-21
It was my first interview with a major tech company, and I was fresh out of grad school, so though some of those things may be obvious to the more experienced, for me it made a world of difference bringing that with me to the interview. Just made me very comfortable and familiar in what should have been a very unfamiliar environment. And the one question that was very similar to the one I read in the book came from an interviewer that I later found out was pivotal in the final decision to hire. So.. you never know.
Reading this book is not a substitute for being technically adept, and certainly will not guarantee a job, but it does leave you better equipped to handle the interview. Seasoned and beginner alike should find many useful tidbits.
All Microsoft Interview QuestionsReview Date: 2008-04-15
1) This book has sample interview questions for you to solve and several approaches for each question.
2) The book then tells you which approach is the best and why. VERY VERY NICE!
3) This book also tells you how to approach problems, how to make sure you are not stuck, how to brainstorm and get the best answer.
4) There are puzzle/riddle type questions too.
5) How to write resumes and cover letters as well.
6)Finally, the book also has very nice simple tutorials of all the important/basic concepts of OOP.
Very comprehensive book. A MUST buy!

Used price: $35.00

PainfulReview Date: 2008-06-04
For the hardcore only!
Algorithms, Data Structures, Computing Machine, AnalysisReview Date: 2007-10-01
In another sense: it's a self-contained book.
Each chapter includes a historical review of concepts and methods.
Important topics
----------------
* Section 1.2. Mathematical basement for algorithm performance analysis. Includes a review of Numbers, Powers, Logarithms, binomial coefficients, and also an example of algorithm analysis using "Kirchhoff's first law" for inputs/outputs (flow to/from each step).
* Section 1.3. Description of the hypothetic computing machine (MIX): memory word, registers, comparison and overflow indicators, input/output device names, machine instruction format, machine instructions.
* Section 1.3.2. Description of the assembly language (MIXAL). Includes an interesting figure on relation between machine instruction codes and assembly language representation.
* Section 1.4.1. Introduce concepts of subroutine and co routine. Co routine is described as a team of sub-programs ideal for multi-pass algorithms (the kind used for processing a stream input).
* Section 1.4.3. Introduce in the field of interpretive routines and simulators. The author tells you how good programmers are at the same time good machine designers (as is the same today with virtual machines and little languages as Java). It includes a simulator program for the hypothetical MIX computing machine. You will learn how a state machine or sequential machine is implemented using a so called Control Routine (complement this reading with section 5.1 of "Computer Organization & Design" by Patterson and Hennessy - see my review for that book).
* Section 2.2.5. Describes the use of doubly linked list data structure by using a discrete simulation example (author use previously reviewed concepts like coroutine and control routine). You learn how the idea of coroutine is a base for discrete simulations. Also, author use what he call a "pseudo parallel procedure": a WAITLIST. This kind of procedure was used during 1960s and 1970s as a multi-task procedure.
* Section 2.3.2. Describe binary trees. The highlight of this section is a "Differentiation" algorithm. The author uses an algorithm to traverse a tree in post-order with each node representing a symbol. He then implements the algorithm using a control routine like the one implemented in Sections 1.4.5 and 2.2.5. The control routine includes a "Jump Table" for processing each node.
In resume, the book describes important topics for past and present programmers. I recommend you to read "Computer Organization & Design" by Patterson and Hennessy as an intro. Then read this one. Also you can complement this read with "Fascicle 1." by Donald E. Knuth, which describes an advanced MIX computing machine called MMIX (a 32 bit hypothetical RISC machine similar to DLX machine used on "Computer Architecture: A Quantitative Approach - 2d edition" by Patterson and Hennessy. Also, "The Art of Computer Programming, Volume 3" will very useful (Balanced Trees algorithm for example, as a "self-reshaping" structure).
Vol 1 is the most important in the series and is a must for CS students Review Date: 2005-11-20
I think the most important is to study the Vol 1. It gives enough exposition to the Donald Knuth style and brilliant thinking. While the content is definitely important it is the level of thinking of the author that represents the main value of the book: you instantly understand the book was written by a great scientist and it does not matter much that now the contents of most chapters can be significantly improved using more modern sources. After all Vol 1 is more then a 30 years old book (it is older then Unix) and as such it should be outdated (we all believe in progress, don't we)... And it is not surprising that parts of Vol 1 on of TAOCP today look completely out of touch with reality especially MIX, the CPU instruction set that is used in all volumes.
Actually MIX instruction set (and thus assembler) was outdated even when the book was first published and more reflects unique Knuth's background with IBM 650. It was far from the state of hardware development even in late 60th when the first volume was published, the period when IBM/360 was the king of the hill.
Now IBM 650, a 1,966 lb machine that consumed almost 30 Kw of electricity looks more like a primitive calculator than a real computer: typical installation has the memory of just 10,000 decimal digits ( 1,000 words; 10 digit per word).
It's really sad that Knuth did not adopt System 360 architecture and PL/360 assembler (Wirth's structured assembler for S/360) for his books but we can do nothing about it. Still this is a book about timeless truths, not the book about the resent CS fashion like Java or you name it :-). It actually can serve as a perfect antidote against any current CS fashion.
And Knuth does provide pseudocode with his natural language algorithm description. And natural language pseudocode has an important advantage over 'structured pseudocode. The problem with a "structured pseudocode" is that the set of control structures is fixed and may not reflect the needs of a particular algorithms (branching out of loop is a common problem that is not addressed by structured programming well). Moreover it can cripple the algorithm by enforcing unnatural control structures, the structures that are absent in it but might be present in more modern languages. For example Perl has an interesting set of control structures that is superior to C. But even "Perl control structures set" can be improved further.
That's why assembler language is preferable: it never obscures "natural" control structures for each algorithms, structures that one day can be mapped into some new elegant language construct. Also as one review noted "sometimes high level languages with all their abstractions make things look more complex than they need be."
I would like to stress it again that each volume is very difficult to read; you really need to work on each chapter by reimplementing the examples that Knuth gives in your favorite language (assembler might help but is not essential).
Mathematical considerations as for average and worst running time of a particular algorithm can be largely ignored during the first couple of years of study of this book. Actually most mathematics in Vol. 1 can (and probably should) be initially completely ignored. See Softpanorama Classic Computer Books for more information.
On the negative side this is an overpriced book, if we are talking about students budget. To save money you can buy one of the first editions: there is not that much difference in content to justify the differences in price. The differences do not interfere with the study of the book. Knuth did an excellent work the first time he published each volume and for a significant improvement we probably need another century and another person.
Just try sorting and searching with out this book.Review Date: 2006-06-17
I almost did not buy it when all I saw in it was mostly math. But I was desperate and it paid off. Turns out you could not explain it any other way. I use it primarily for balanced trees. I may try some thing more exotic later.
The set also looks impressive in the library.
Mechanical things: foundations Review Date: 2006-03-10
TAoCP is "about timeless truths" as the author writes. It's about CPU registers and memory cells. It's about counting the number of machine cycles a program will take. It's about precision. It's not about creating fancy Excel macros or adding pop-up windows to your web page.
Volume one contains two chapters. Chapter One first defines algorithms, gives basic math concepts for computer science starting with Mathematical Induction, continuing with a section on how to analyse algorithm, plus a couple of sections for people familiar with mathematical analysis (i.e. the math behind calculus). It ends with a complete description of MIX, a fictional computer, and of the machine language for programming MIX. (Note: MIX will soon be upgraded to the equally fictional MMIX). I won't repeat the author's rationale for sticking to machine language, and a fictional one at that! Suffice it to say that he has his reasons.
Chapter Two is about lists and trees, the most fundamental of data structures. Stacks, queues, and deques are lists with one or two entry and exit points. Linked lists have as many entry and exit points as there are elements, but careful! you need to worry about linking elements to one another, and ending with correct linking when adding or removing an element. And then there are trees, and the many ways to visit all nodes in a tree exactly once. Leftmost node first? Last? Middle node first?
Who should read this then? Patient people! Knuth published the first volume in 1966 and plans to finish the final edition of the fifth volume in 2015. This is not a For Dummies book, so don't expect to speed read through it. I skimmed the whole thing cover to cover, skipping the exercises and occasionally working hard at achieving perfect understanding of two or three pages (several hours!). I'm now going through it again more slowly, part by part, doing some of the problems. If I want, I can have fun with this book for the rest of my life.
Apart from that, well obviously computer science academics will enjoy TAoCP and find inspiration here for classes and tutorials. This is a monograph, so it is complete and mostly self-contained. It is also accessible to anyone willing to put in the hours to read it, and very little beyond a little programming experience is required.
Most of all, TAoCP is for people who enjoy thinking for its own sake, people who enjoy puzzling out and finding tricky solutions to what might seem like a straightforward problem. Some people enjoy tinkering with cars, others like building model ships. Like these activites, going through the exercises in TAoCP gives us what Fred Brooks calls the sheer joy of creating things.
By the way, it's worth learning MIX. I do the exercises in Perl (egad! I can only handle some of the problems...) but since the solutions are in MIX, it pays to know it well enough to read through Knuth's examples.
Vincent Poirier, Tokyo

The roaring twenties in genteel ColomboReview Date: 2008-04-02
Is there a sequel?Review Date: 2006-10-03
I have been told Cinnamon Gardens was recommended by a well-respeccted university as reading material prior to an academic and cultural trip the institution was leading there.
To understand Sri Lanka today, you must read this.
ExcellentReview Date: 2005-11-24
Cinnamon Garden, an aristocratic neighborhood in Colombo, Ceylon is the setting of this story where cingaleses, tamils, mixed raced and brittish live together and debate themselves between their millenary customs or the new one introduced by the colonialist, the christianism or the traditional religions, the social liberalization or the cast prejudice, the colonial status quo or independency, traditionalism or progress, a debate that confront each one of the personages and ruled their lives.
A story masterly written recommended for those readers who enjoy a novel where history and manners mixes with a good trama.
Expressions of freedomReview Date: 2006-05-13
colorful and compelling, but...Review Date: 2005-12-26

Used price: $36.99

Not particularly usefulReview Date: 2008-07-11
Thorough, well-written, and crystal-clear explanations.Review Date: 2008-06-09
Obviously, this book is a perfect companion to the Weka machine toolbox, which is quickly becoming a standard, invaluable research toolbox for many.
A little too wordy for my tastes, but goodReview Date: 2008-06-03
AwesomeReview Date: 2008-02-15
SuperficialReview Date: 2008-05-20
There is no magic: real Data Mining needs lots of Statistics. You can learn to use Weka, but in order to do real work you'll need to understand what goes behind its nice user interface, and I think this book is not enough.
Related Subjects: Compression Speech Recognition Computational Algebra Pseudorandom Numbers Animated Sorting and Searching Complexity Publications
More Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250