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: $2.00

Dated, but still very usefulReview Date: 2007-11-28
A Teaching Reference, And A Great BookReview Date: 2005-10-28
You really have to enjoy this book for it's straightforwardness. If you like the "Dummies" series, this book will progress a bit too fast for you, for it is rather complete in it's description of the language features. But if you read and digest technical matters in one or two (or three) gulps, you'll benefit from this book.
DIAGRAMS OF DR. G. BYRON SAME AS DR. P. SELLAPANReview Date: 2002-10-18
Excellent as a Reference and a Self-study GuideReview Date: 2005-02-26
Too goodReview Date: 2002-09-08
You want C, you got C.

Used price: $65.57

Great BookReview Date: 2007-03-20
Algorithms and much more!Review Date: 2002-07-10
are algorithmic, and the underlying mathematical principles are both simple and powerful. Stephane Mallat's great, and readable, book, in both of its editions, brings
this out wonderfully!
A bold approach to wavelet transforms that simplifiesReview Date: 2002-04-24
Parseval's theorem, simply stated, is that the inner products in Hilbert space are conserved by the Fourier transform. How simple. Linear algebra approaches cannot hope to make things this simple.
Proof of the General Sampling Theorem is equally elegant; it is shown that the projection of the function to be decomposed onto a basis function gives the discrete spectral coefficient.
Readers will also enjoy the treatment of windowed Fourier transforms and frames.
I should add a note about the style of the treatise. This treatise is not ordinary. It consistently uses very precise and carefully defined symbology. Contrary to popular belief, this makes the text easier to read, not more difficult. Once the reader understands the symbol set being used (they are all defined in the front of the text), even the proofs are tractable. Yes, I said proofs. That is another aspect of the text. There are proofs embedded in the text, without loss of continuity or clarity. Proofs are necessary to a good understanding of the subject matter. The formalism of theorems, lemmas and propositions makes the conclusions understandable, because the theorems, lemmas and propositions supporting the conclusions are identifiable.
I applaud the author for his approach and recommend that other text book writers use the same approach.
The most universal treatment of the subjectReview Date: 2005-06-08
The worst textbook I have ever seenReview Date: 2004-02-12

Used price: $25.00

A Supplemental Text Review Date: 2008-06-16
While less comprehensive than either Cormen or Skiena, the tone is more conversational and relaxed. At only 320 pages, it cannot be expected to be comprehensive. Certain standard topics are barely covered (such as binary search trees and red black trees) if at all. Because of this, it can only be a used as an introductory text, or maybe used as a supplement to Cormen or Skiena
And now for the bad... "Algorithms" does not have answers to any of the end of chapter problems. There really is no justification for this. Yes Cormen and Skiena also do not provide answers...but as I mentioned earlier, if they want to compete with Cormen and Skiena, they have to provide something new, and giving students the answers to some of the problems would have been the easist way to accomplish this.
The authors exhibit enough inaccuracies when discussing non-computer science topics (ie, linear algebra, cryptography, and quantum mechanics) that at times, you have to wonder about their command of the main topic -- algorithms.
So, consider, for example, when discussing the simplex algorithm on page 213, they incorrectly define what is meant by a hyperplane. The standard definition can be found in Hoffman and Kunze (i.e., in a vector space of dimension n, a subspace of dimension n-1 is a hyperspace or hyperplane). Their definition is simply wrong. Moving on to cryptography, they discuss the one time pad, the AES, and the RSA cryptosystems. They dismiss the one-time pad as a toy scheme, and suggest that at the other end of the spectrum is the AES scheme. The fact is just the opposite -- the one-time pad has been proven to be a completely secure and unbreakable cryptosystem, and the AES has not been proven so. Also, comparing the one time pad to the RSA, one should note the RSAs security relies on the non-proven difficulty of factoring large numbers...and if quantum computers ever became a reality, the fact is the RSA would be broken. The reason the one time pad is not used is not because it is a toy. It is not used because in the one-time pad, the symmetric key can only be used once, and so a new problem -- key distribution -- is introduced, which in fact makes the one time pad impractical for most applications. Moving on to algebra, on pg. 33 we see the statement "The mapping x|-> x^e mod N is a bijection on {0,1,2,...,N-1}". A mathematician would properly state this as onto, not on, {0,1,2,...,N-1}, since the map is a bijection.
Finally, the last chapter is on quantum algorithms (big marks for bravery), which neither Cormen and Skiena do (Skiena has a new edition of his book on the way, so we will have to wait and see if his latest covers it). From a physics point of view, the chapter falls way short. They attempt to introduce qubits by discussing a single electron atom. The problem is they do not seem to realize you cannot use an atom for both a qubits and a classical bits discussion. An atom is 100% quantum mechanical. (By comparison, when Feynman discussed the double slit experiment, he used electrons to illustrate the quantum effects, and bullets for the classical case.) Therefore, the author's statement on page 298 "These are the two possible states of the electron in classical physics" is just nonsense. In classical physics, the electron does not have a first excited state, it has a continuum of possible states -granted, the states are not stable and the electron will promptly spiral into the nucleus, but that is a separate issue. The authors also give a quote by Feynman: "I think I can safely say that no one understands quantum physics". Yes, at the time Feynman said that, that was probably true. But quantum theory has not stood still, and Feynman perhaps did not know the theory of decoherence, or perhaps he considered it speculative. But, as decoherence has now been observed in the laboratory, there is in fact a school of thought, championed by Roland Omnes, which claims that quantum mechanics is now, with the addition of decoherence, finally in some sense understood. ...Also, they introduce a two particle system as a tensor product state. It is true this is the correct description, but it is not correct to do so without any motivation of why (why not a direct sum of vector spaces, for example? Why must it be a tensor product of vector spaces?) and without bothering to give a definition of a tensor product. I encourage the interested reader to consult "Quantum Mechanics - a modern development" by Ballentine and also the outstanding "The Quantum Mechanics Solver" by Basdeveant and Dalibard if they truly wish to understand the modern Quantum Theory topics which the authors have so poorly treated.
Still, despite the above issues, as long as one is using this book as a supplement, and not the main text, I think it can serve as valuable resource for the algorithms student.
Very well written and quite clearReview Date: 2007-09-18
My first choice as an instructorReview Date: 2008-03-04
That we get one of the greatest researchers in the area (Papadimitriou) alongside two other distinguished authors is just icing on the cake.
The first printing had numerous errors, though the online version of the book had already corrected many of them. I haven't used the book since then, but will in the Fall, and I'd expect with the vigor already invested by the authors, the book will be in even better shape.
I'm glad they wrote this thing.. it was long overdue.
Author's student: By Far The Best Algorithms Book!Review Date: 2008-02-06
Complex Computing Algorithms just made story-likeReview Date: 2007-12-31


A lot of what you need to understand calendarsReview Date: 2008-03-12
Calendars are not simple at all, but the approach taken by the authors makes the algorithms involved very accessible. I also appreciated the decision to focus on clarity rather then performance.
Excellent 3rd edition has algorithms that are hard to findReview Date: 2008-02-20
The one thing I didn't care for was the choice of Lisp as the implementation language in appendix B. However, this isn't too big of a problem since equivalent Java programs are on the book's website along with the Lisp implementations. Also, since the mathematical equations of conversion are clearly given, you can choose your own implementation language with few problems. The following is the table of contents:
1. Introduction
Part I. Arithmetical Calendars:
2. The Gregorian calendar
3. The Julian calendar
4. The Coptic and Ethiopic calendars
5. The ISO calendar
6. The Islamic calendar
7. The Hebrew calendar
8. The Ecclesiastical calendars
9. The Old Hindu calendars
10. The Mayan calendar
11. The Balinese Pawukon calendar
12. Generic cyclical calendars
Part II. Astronomical Calendars:
13. Time and astronomy
14. The Persian calendar
15. The Baha'i calendar
16. The French Revolutionary calendar
17. The Chinese calendar
18. The modern Hindu calendars
19. The Tibetan calendar
20. Astronomical lunar calendars coda
Part III. Appendices:
A. Function, parameter, and constant types
B. Lisp implementation
C. Sample data.
Ignore the reviewers virtualtraveler and "A reader"Review Date: 2005-02-19
highly readable and reliable description of many calendarsReview Date: 1999-04-29
Rather than on the history of calendars or their cultural background, the focus is on a lucid, correct, and complete exposition of their functional principles. Extensive bibliographic references are given to the primary sources for each calendar.
A highlight is the complete specification of several calendars depending on fairly precise timings of astronomical phenomena (Chinese calendar and some Hindu religious calendars).
To make it self-contained, the book explains the necessary mathematical and astronomical background. The astronomical models are taken from the classic 1991 book "Astronomical Algorithms" by Jean Meeus.
I especially like the presentation of the calendrical formulae in an essentially non-algorithmic manner, using normal mathematical notation. This makes it easy to further analyze these formulae.
For instance, if one wants to know how good an approximation to the spring equinox is March 21 in the Gregorian calendar, one finds from the formula on page 36 in the book that midnight of March 21 in Gregorian year Y is exactly
Y·365.2425 - (Y mod 4)·97/400 + (floor(Y/4) mod 25)·3/100 - (floor(Y/100) mod 4)/4
days after midnight of March 21 in Gregorian year 0, which ranges from Y·365.2425 - 1.4775 up to Y·365.2425 + 0.72. Thus, even assuming the Gregorian approximation of 365.2425 days to the tropical year, spring equinoxes are distributed over at least three dates in March in the Gregorian calendar.
Such reasonings would be very difficult if the book specified the calendars only in terms of programming language code.
The formulae are designed so that it is easy to incorporate them into code written in the programming language of your choice. This use is further supported by a set of test dates in an appendix. Another appendix lists an example implementation of all the formulae, in the programming language Common Lisp. This code (intended for personal use) can also be downloaded from the internet.
But this book is much more than a collection of programming recipes for many calendars -- it makes you understand the structure of those calendars. Ambitious readers can even find the data and the methods to construct their own calendrical formulae.
What would I like to be changed in the book? Not much. Some of the calendrical formulae could be further simplified, the astronomical terminology could be modernized in places, and perhaps some additional historical information could be added. And, of course, even more calendars! For instance, some of the proposed reformed calendars, a more widespread version of the Persian calendar, or an historic Japanese calendar.
This book is a must for everybody wanting reliable and highly readable information on the functional principles of the world's calendars.
Michael Deckers
An excellent book with a mean spirited licenseReview Date: 2000-01-04

Used price: $3.67

Perfect for my class!Review Date: 2005-09-10
Former Student SpeaksReview Date: 2004-10-03
If you are looking for a book that goes over the basics of programming and you don't care about any practical applications, this is the book for you. If you are looking for real world programming skills, look elsewhere. This book will not teach you how to program with real world tools.
A dangerous book with good intentionsReview Date: 1999-06-18
As an upper-level teaching assistant at Georgia Tech, where the book is used for the Introduction to Computing class, I have seen many students learn from the book, only to see their "skills" fail to pass on to real languages. Programming can only be learned via experience, and Dr. Shackleford's use of an uncompilable psuedocode is perhaps the most damning aspect of the book. I give it an additional star due to its possible use in a classroom setting *with* experienced teachers, but it is by no means a practical guide for anyone interested in being introduced to, for the first time, computer science.
Not a teacher, or even a college studentReview Date: 2001-12-13
I consider the pseudo-code an advantage, since it forces me to look at unfamiliar terms and structures and equate them with the equivalent items in my "real" language. It teaches *theory*, which I can apply to any language, not implementation in a single language that will be obsolete in a year or two.
Mr. Black is misdirected on the point of the bookReview Date: 2000-12-19
An adequate programming foundation begins with the trials and errors of learning one's first programming knowledge. Dr. Shackelford's book better preparesone for their first programming language experience, but is by no means a substitute for a programming language course if one's goal is to learn to program.
There are many that wish to gain a better knowledge of computing from a higher-level, theoretical standpoint. Also as an upper-level computer science theory TA at Georgia Tech, I realize the importance of being introduced to a concept in its high-level foundations, rather than in its gory details.
The CS curriculum at Tech is moving to Scheme as an introduction to computing and computer science. While I adamantly feel this is an excellent move on the part of the College of Computing, given their goal to output programmers from the school, I also feel some generalized theoretical foundations are lacking from the course that were present when it was taught with Dr. Shackelford's book.
Overall, if one is interested in grasping high-level algorithms and receiving a basic understanding of how computers process data and execute programs, then this book is wonderful. If, however, one is interested in coding VB applications in a couple of weeks, this book is not appropriate.
Collectible price: $80.00

Not worth your time if you are a younger programmerReview Date: 2005-04-14
A real gem...Review Date: 2006-03-17
It is the single book I learnt most from when I was a freshman studying Computer Science at my local University (when Pascal was already declining, I'm not so old ;-). I wish more recent books were as good as this one, but I have not found a single book so focused and, at the same time, so broad in scope as this one.
Wirth covers programming fundamentals (including recursion), many sorting algorithms, data structures (from simple data collections to B-trees and hashing), and basic compiler technology. That is, four books into one (and, surprisingly, this is not a hefty tome.)
A must have bookReview Date: 2004-07-08
Cornerstone of programming knowledgeReview Date: 2003-09-22
A Necessary Block of a Programmer's FoundationReview Date: 2000-08-18

Used price: $125.88

Understanding molecular simulationReview Date: 2008-02-08
great book for MD basicsReview Date: 2007-05-06
Perfect for New Grad StudentsReview Date: 2002-11-24
I do Monte Carlo simulations at Princeton, and found this book to be the most helpful available for getting my research started. It is my most common reference, and is used extensively in writing background information for various research documents.
However, after you have written your first few codes, you will pass the level of this book and need to move on. I use it less now than I did my first year.
Every student in my group (Panagiotopoulos) has this book I think. And like me, they started with it, but moved on.
Old fashioned fortran, strong bias on Monte CarloReview Date: 2006-06-18
The code examples for download for the exercises, contain subtle errors, are not optimized for performance (which is THE most important thing in simulation business) and worst of all, are written in Fortran. The fact that they publish Fortran code must reflect the fact that at the time they learned how to program a computer there was no C, C++, JAVA, etc. and no object orientation in sight. Nowadays, probably no expert in programming would start a scientific and readable code in fortran. Also their definition of an algorithm is simply technically wrong. The authors are very sloppy here, have obviously no training in theoretical computer science and are obviously no experts for writing optimal code.
Scientifically, as far as physics is concerned, the book is sound, they give good arguments pro and against certain methods, but when you have already worked with Allan/Tildesley or Rappaport for many years you have the eery impression that they simply repeat many arguments from these books or from other research articles (They keep citing Allan/Tildesley a lot) Those things that are not more or less copied from other sources seems to reflect their own experience in this field which seems to be strongly limited to MC methods.
Although this book is sometimes praised I cannot really recommend it. Allan/Tildesley, and in particular the book by Rappaport are superior in stlye and in particluar as code examples are concerned. With Rappaport you get working code right away in proper C (albeit in Fortran-Style C -- again, the reason for this being the fact, that all these authors of Simulation books learned programming probably in the late 70's when Fortran was state-of-the-art). I nevertheless would recommend Rappaports book instead. The authors even offer scientific workshops based on their book (and probably make a lot of money with that). One can only hope that those are better than the coding examples of the exercises. Therefore only 2 stars.
Excellent text for beginners in simulationReview Date: 2004-11-19

Used price: $29.50

ExcellentReview Date: 2007-08-12
advanced methodsReview Date: 2007-03-30
The authors describe advanced ideas like using Monte Carlo simulations to reduce variances in clumping due to randomness. Along with several methods for finding light transport. This can involve an excursion into the theory of adjoint operators. Another idea given is to model light transport as a diffusion process of the radiant energy.
All of this so that the images can be considered as derived from the laws of physics, applied to ray tracing.
Good book for global illuminationReview Date: 2007-03-09
A valuable book for a computer graphics PhD student or researcherReview Date: 2006-11-02
Huge DissapointmentReview Date: 2006-10-02
First off, the two prior reviews for this text are highly suspect. The text is basically a collection of highly complex mathematical formulas with little explanation. The physics, statistics, and calculus courses I took for my computer science degree were not nearly adequate preparation for this book. Even after dusting off my old math books and trying to refamiliarize myself with the content, the first few chapters were nearly impossible to trudge through. Perhaps this text could serve as a reference if you were already a professional in the field, but as any sort of learning aid, it is completely useless.


Excellent textbook for researchersReview Date: 2007-10-02
Great book for Computer ScientistReview Date: 2005-08-06
Excellent book...very clear, well-organizedReview Date: 2006-06-11
The book contains an absolute wealth of topics. There is an interesting combinatorial approach to groups, and the book's presentation of certain topics, such as matroids and quasigroups, is among the best I have found; many books make these structures appear painfully abstract and difficult to grasp. The book is organized so that it's fairly easy to skip around, but I actually like the order in which the topics are presented.
This text makes an excellent addition to the collection of anyone interested in combinatorics, and if someone were to buy only one book on the subject, I would recommend this book. I think this would make an excellent textbook--it was used as such in one of my graduate courses, and would probably be suitable for an undergraduate course as well.
Sigmas all over the placeReview Date: 2007-03-31
The first part can be used for undergraduates and the second part is more advanced. The book is broad in scope because, as the author explains, so is the subject matter.
The chapters have "techniques" and "algorithms." It's not a book that has a slew of examples of combinatorial problems (like so many), but leans toward mathematical sophistication in formalizing the techniques. This is either a feature or a bug, depending on what you needs are. For instance, it's not very often that introductory books present derrangements next to Fibonacci numbers. Or explain how calculate the average number of comparisons that Hoare's Quicksort does with a differential equation for the recurrence relation in the context of finite fields. It sounds scary, I know, but if you look at the explanation, you'll see you should have been born a nephew to this author.
In case you like Knuth's Concrete Mathematics you will like this book too (there's some overlap, because both are concerned with the analysis of algorithms). Knuth's book works more on skill-building, and I think Cameron's book is better for theoretical explanation.
Disclaimer: I haven't worked with the whole book (because of a lack of time - "Ars long, vita brevis", as they say).
Very helpfulReview Date: 2004-01-09
This book gives a number brief case studies. Its 18 chapters (not counting intro and closing) span a variety of interesting topics. Cameron doesn't write down to the reader - it takes serious thought and some mathematical background to get full value from the reading. The examples are nowhere near as concrete as you'd expect in a popularized version. Still, the author avoids opaque references to specialist terms, and keeps the text approachable.
I have personal reason to like this book more than it's high quality warrants. I was thumbing through it in a store, and skimmed a page that described Kirkman's schoolgirls (a two-level problem in selecting subsets). Quite abruptly, I realized that those charming young ladies exactly represented a problem I had in connecting the parts of a multiprocessor. One or two references later, I had a practical way out of a potentially ugly quandry. This material is not just fun for its own intellectual challenge, it has application to real engineering, too.

Used price: $52.42

A must have...Review Date: 2005-03-01
This is _not_ just a book for the experts. However, you will need to think and interact when reading it. That is, after all, how you learn, and the book helps and guides you in this with many puzzles and problems.
Good value text on a spread of interesting and useful topicsReview Date: 2005-02-20
For a course I help teach, the intoductions to probability theory and information theory save a lot of work. They are accessible to students with a variety of backgrounds (they understand them and can read them online). They also lead directly into interesting problems.
While I am not directly studying data compression or error correcting codes, I found these sections compelling. Incredibly clear exposition; exciting challenges. How can we ever be certain of our data after bouncing it across the world and storing it on error-prone media (things I do every day)? How can we do it without >60 hard-disks sitting in our computer? The mathematics uses very clear notation --- functions are sketched when introduced, theorems are presented alongside pictures and explanations of what's really going on.
I should note that a small number (roughly 4 or 5 out of 50) of the chapters on advanced topics are much more terse than the majority of the book. They might not be of interest to all readers, but if they are, they are probably more friendly than finding a journal paper on the same topic.
Most importantly for me, the book is a valuable reference for Bayesian methods, on which MacKay is an authority. Sections IV and V brought me up to speed with several advanced topics I need for my research.
Great wish it had more n option inverse problemsReview Date: 2007-07-16
Outstanding book, especially for statisticiansReview Date: 2007-10-02
This is a learning text, clearly meant to be read and understood. The presentation of topics is greatly expanded and includes much discussion, and although the book is dense, it is rarely concise. The exercises are absolutely essential to understanding the text. Although the author has made some effort to make certain chapters or topics independent, I think that this is one book for which it is best to more or less work straight through. For this reason and others, this book does not make a very good reference: occasionally nonstandard notation or terminology is used.
The biggest strength of this text, in my opinion, is on a philosophical level. It is my opinion, and in my opinion it is a great shame, that the vast majority of statistical theory and practice is highly arbitrary. This book will provide some tools to (at least in some cases) anchor your thinking to something less arbitrary. It's ironic that much of this is done within the Bayesian paradigm, something often viewed (and criticized) as being more arbitrary, not less so. But MacKay's way of thinking is highly compelling. This is a book that will not just teach you subjects and techniques, but will shape the way you think. It is one of the rare books that is able to teach how, why, and when certain techniques are applicable. It prepares one to "think outside the box".
I would recommend this book to anyone studying any of the topics covered by this book, including information theory, coding theory, statistical inference, or neural networks. This book is especially indispensable to a statistician, as there is no other book that I have found that covers information theory with an eye towards its application in statistical inference so well. This book is outstanding for self-study; it would also make a good textbook for a course, provided the course followed the development of the textbook very closely.
Great Book As Far As It GoesReview Date: 2006-03-27
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
While this outline is somewhat dated, having been published in 1990, the base language of C is still the same. I still recommend it to students who need more practice in visual debugging skills.