The Algorithm Design Manual (Texts in Computer Science)

The Algorithm Design Manual (Texts in Computer Science)

  • Downloads:5668
  • Type:Epub+TxT+PDF+Mobi
  • Create Date:2021-05-30 17:30:58
  • Update Date:2025-09-07
  • Status:finish
  • Author:Steven S. Skiena
  • ISBN:B094Q2M8BV
  • Environment:PC/Android/iPhone/iPad/Kindle

Summary

This book/CD-ROM package is a handy reference for working professionals who use algorithms on a daily basis。 Practical Algorithm Design takes the "mystery" out of algorithms which readers encounter in the workplace by identifying and explaining them。 A major feature of this book is the inclusion of a complete "catalog" of important algorithmic problems。 By browsing this catalog, readers can quickly identify the name of the problem they have encountered, what is known about it, and how they should proceed if they need to solve it。 Nothing like this catalog currently exists in computing literature for general computer algorithms。

Download

Reviews

Christina

If you are a self taught software engineer like myself this book is an amazing resource for not only preparing for technical interviews but getting into a rhythm of thinking like a computer scientist and breaking from being just a programmer

Vibhor Rawal

When I picked it up, I instantly became a fan of Skiena。 Some of the writings span beyond algorithm design and it was a delight reading those。 Especially the war stories helped as a reader to get a clearer picture of an algorist's job。 Though in my opinion the book deteriorates in writing quality (not knowledge imparted per chapter), it still is a good design manual, don't get me wrong the worst pages of this book felt superior to some other books out their。====================================== When I picked it up, I instantly became a fan of Skiena。 Some of the writings span beyond algorithm design and it was a delight reading those。 Especially the war stories helped as a reader to get a clearer picture of an algorist's job。 Though in my opinion the book deteriorates in writing quality (not knowledge imparted per chapter), it still is a good design manual, don't get me wrong the worst pages of this book felt superior to some other books out their。===========================================Here are some of the wordings that were a sugar candy to read-Proofs are useful only when they are honest。Pseudocode is perhaps the most mysterious of the bunch, but it is best defined as a programming language that never complains about syntax errors。recursion is mathematical induction。a computer scientist is a mathematician who only knows how to prove things by induction。algorist as “one skillful in reckonings or figuring。”The moral of logarithmic growth is clear: “If you are gonna do the crime, make it worth the time!”An Ω(n log n) lower bound can be shown by observing that any sorting algorithm must behave differently during execution on each of the distinct n! permutations of n keys。 The outcome of each pairwise comparison governs the run-time behavior of any comparison-based sorting algorithm。 We can think of the set of all possible executions of such an algorithm as a tree with n! leaves。 The minimum height tree corresponds to the fastest possible algorithm, and it happens that lg(n!) = Θ(n log n)。Strategy represents the quest for the big picture—the framework around which we construct our path to the goal。 Tactics are used to win the minor battles we must fight along the way。 In problem-solving, it is important to check repeatedly whether you are thinking on the right level。 If you do not have a global strategy of how you are going to attack your problem, it is pointless to worry about the tactics。===========================================This book definitely helps solidify some ideas, but the second half didn't sell for me (where it's all here's some algos, these are the places you will find them, ask these questions to yourself for finding how and if to use these) 。 It did not feel thorough in the sense that most of the algos given are briefly discussed and their implementation is out of the bounds of the book, maybe it suffices it's purpose and for some it will be a blessing to find the references material and latch onto it for more information。 But for me it distinguished this book from a 5 star to a 4。 。。。more

Rydzyn

Certainly worth a read。 I give it 5 stars because it certainly deserves 4, and I'd love more software developers to read it :)。I liked that algorithms were not presented in vacuum。 Quite the opposite。 A lot of attention is placed on practical applications of algorithms。 Author talks a lot about ways to recognize that many popular problems can be solved using popular algorithms。In my opinion, this book has a very pragmatic approach。 It doesn't go into details of flavors of algorithms that most de Certainly worth a read。 I give it 5 stars because it certainly deserves 4, and I'd love more software developers to read it :)。I liked that algorithms were not presented in vacuum。 Quite the opposite。 A lot of attention is placed on practical applications of algorithms。 Author talks a lot about ways to recognize that many popular problems can be solved using popular algorithms。In my opinion, this book has a very pragmatic approach。 It doesn't go into details of flavors of algorithms that most developers won't need in their daily work。 At the same time, it offers a broad overview of many topics, so you know what is there。Consequently, implementation is usually shown for the basic algorithms, and half of the book is a catalog of problems with references to existing libraries implementing solutions。I liked how the book teaches techniques more than algorithms itself。 For example, when it gets to graphs, it features implementations of depth-first-search and breadth-first-search as customizable templates。 Then several other algorithms are presented as a simple variations on DFS or BFS。 In the chapter about dynamic programming, instead of discussing just one specific implementation of the classic edit distance algorithm, it describes a lot of variations where slight modifications to the "edit distance" can be used to solve different problems。 When presenting NP problems, author teaches you how to recognize if your problem is NP or not, so you know if you should look for an efficient algorithm or settle for a heuristic。Because of that focus on design and techniques, the book misses many popular algorithms that other books usually include。 In this book, you will not find: A*, details of various flavors of hash tables, details of splay trees, red-black trees, KMP pattern searching, and so on。 On the other hand, you may have to research some topics like that yourself when doing exercises。If you have time to do exercises, I strongly encourage that。 They'll give you insights, let you practice what you've just learned or show where techniques discussed in the chapter fail to work。 Exercises are divided into sections so you can quickly pick one that you like。 E。g。 interview problems are listed separately, and in my career I have actually been asked some of these questions on job interviews。 Exercises are also graded by difficulty。 I saw reviews that compare this book with Cormen's "Introduction To Algorithms"。 There is overlap, but also the style and focus of these two books are very different。 Depending on your needs, you may like one more than the other。 。。。more

Kirill

Most of the books in this category provide a rigorous catalog of different algorithmic problems and their solutions, and this one is not an exception。 At least its second part。 What makes this books stand out is its first half。 There, author provides a practical view on solving algorithmic problems, providing intuitive explanations of the major problems in each category。 Each of the first 10 chapters also contain war stories, where the algorithms are brought to real practical applications based Most of the books in this category provide a rigorous catalog of different algorithmic problems and their solutions, and this one is not an exception。 At least its second part。 What makes this books stand out is its first half。 There, author provides a practical view on solving algorithmic problems, providing intuitive explanations of the major problems in each category。 Each of the first 10 chapters also contain war stories, where the algorithms are brought to real practical applications based on the author’s experience。And if you’ll need a more complete reference, the second part of the book contains a more traditional collection of various algorithms with topics ranging from sorting to black box optimization。 。。。more

Priyavasanthan Pandiyan

Best of the algorithms book read among a lot of others。 Real time challenges with progressive optimization。 The best of it how the Data structure themself are built and why they are built the way that it is。 Worth keeping as a companion for CS career。

Matt McCormick

A very thorough book but I found that the explanations for most algorithms could have been better。 I found it to be more of a reference book for looking up how to write an algorithm if you need one rather than learning well about a variety of algorithms。

Philippe Fanaro

A work of art and mastery of many fields。 Decades and decades of research in addition to the much more valuable big picture of their integration。 This is *the* book to bridge the gap between theory and practice。I don't know if this book could be read with someone with zero knowledge of the topics involved。 I am a graduate student of electrical engineering who knew a reasonable lot before trying this book out and, still, couldn't read more than 40-60 pages a day (I separated 2 weeks off for this A work of art and mastery of many fields。 Decades and decades of research in addition to the much more valuable big picture of their integration。 This is *the* book to bridge the gap between theory and practice。I don't know if this book could be read with someone with zero knowledge of the topics involved。 I am a graduate student of electrical engineering who knew a reasonable lot before trying this book out and, still, couldn't read more than 40-60 pages a day (I separated 2 weeks off for this book)。 。。。more

Priyanka Shah

Amazing and informative book for anyone interested in knowing how algorithms shape the world we live and power almost all the electronic machines we interact with on day to day basis。 Most importantly gives you a zoom out version to analyze and breakdown big problems into small informative chunks which can then be processed to get a value。

Edmund Martin

One of the best introductory texts to Algorithms, and introduces many of the topics in an easy to understand way。

Scott Holstad

A pretty good resource and one of the better books on the subject, in my opinion。 However, many describe it as "introductory" algorithms, and I'm not sure I totally agree。 Unless you already posses a solid foundation in related areas, a newbie will often find it hard to walk into this and immediately understand it。 And maybe some will say that would be unrealistic, and I would be one of those。 However, I actually have heard and seen others say exactly that, and again, I don't agree。 Nonetheless, A pretty good resource and one of the better books on the subject, in my opinion。 However, many describe it as "introductory" algorithms, and I'm not sure I totally agree。 Unless you already posses a solid foundation in related areas, a newbie will often find it hard to walk into this and immediately understand it。 And maybe some will say that would be unrealistic, and I would be one of those。 However, I actually have heard and seen others say exactly that, and again, I don't agree。 Nonetheless, a pretty good book and solid resource。 Recommended。 。。。more

Danial Kalbasi

A useful read for anyone who likes to have a deeper understanding of algorithm design。 The book covers many aspects such as time/space complexity, NP-completeness, and many other concepts。 The part that I personally really appreciate was the first few chapters about how to set our mindset to design an algorithm。This book, like most academic books, is hard to read and comprehend and needs the reader to do more research about the subjects。 I wish people who write these books, they come out of thei A useful read for anyone who likes to have a deeper understanding of algorithm design。 The book covers many aspects such as time/space complexity, NP-completeness, and many other concepts。 The part that I personally really appreciate was the first few chapters about how to set our mindset to design an algorithm。This book, like most academic books, is hard to read and comprehend and needs the reader to do more research about the subjects。 I wish people who write these books, they come out of their academic cave。 It doesn't need to use complex writing structures or tough vocabularies to explain a simple idea。This book, of course, is not something you read from A to Z。 It's probably good as a reference。 。。。more

Alexey Zorin

This book is just a bit less academic and a bit more casual than the famous "Introduction to Algorithms" however it's all about applications。Every chapter starts off with a problem statement, then questions are asked to help identify hidden nuances of the problem, followed by a "War story" showing where exactly that particular algorithm found it's application and tricky exercises of course。Author provides dozens of references to each topic so the reader could study the particular subject in deta This book is just a bit less academic and a bit more casual than the famous "Introduction to Algorithms" however it's all about applications。Every chapter starts off with a problem statement, then questions are asked to help identify hidden nuances of the problem, followed by a "War story" showing where exactly that particular algorithm found it's application and tricky exercises of course。Author provides dozens of references to each topic so the reader could study the particular subject in details。As well as "Introduction to Algorithms" it requires a strong background in Math (geometry, calculus) and CS。 。。。more

Vikas Srivastava

An excellent book taking a hands approach on solving algorithmic problems。 A brief introduction to the algorithms followed by specific implementations of everyday problems makes it truly a ‘Hitchhiker’s Guide to Algorithms’

Sebastian Baker

My

Elkhan Ibrahimov

explanation and examples are really good

Arun Ravindran

Very conversational and witty style of writing。 I finished only the first ten chapters。 Plan to keep revisiting it。

Natu Lauchande

Good go to book for algorithms !!!

Yasser

Explanation is an art and Skeina is a master on it。

Alex Bulankou

Algorithm books are usually not meant to be read fully as a novel, but used as a reference。 Skiena's book is both。 It focuses on real life practical examples。 It even has some measure of good humor and memorable quotes。It is amazing how often the reason you can't find a convincing explanation for something is because your conclusion is wrong。 This book makes you feel actually thrilled about using algorithms to solve practical scale problems and feel invigorated, not all bored, about software eng Algorithm books are usually not meant to be read fully as a novel, but used as a reference。 Skiena's book is both。 It focuses on real life practical examples。 It even has some measure of good humor and memorable quotes。It is amazing how often the reason you can't find a convincing explanation for something is because your conclusion is wrong。 This book makes you feel actually thrilled about using algorithms to solve practical scale problems and feel invigorated, not all bored, about software engineering in general。 This book is about business problems and it does not attempt to impress you with the formal proofs backing the algorithms; and in fact, in most cases, solid high school math and basics of probability is sufficient to apply them。 With its heavy practical focus, the books reminds why performance is like money in software feature sense, having it allows you to build all the great functionality。The issue of finding the best possible answer or achieving maximum efficiency usually arises in industry only after serious performance or legal troubles。Memorizing the index and high high level details of the reference section gives you the language to talk about and confidence that you will know where to start your design research in eighty percent of problems you face day to day。 。。。more

Snotnose

Holy crap, wish I'd found this book before I retired。 I've been recommending Sedgwick's book for 30 years, this one is even better。Something I really like is how he shows how useful graph theory can be。 If you can turn your problem into a graph (and you'd be surprised how often you can) there are a lot of non-obvious algorithms that will beat the pants of any non-graphical algorithm。 I got a B。A。 in math, the most useful class I took was graph theory。 Holy crap, wish I'd found this book before I retired。 I've been recommending Sedgwick's book for 30 years, this one is even better。Something I really like is how he shows how useful graph theory can be。 If you can turn your problem into a graph (and you'd be surprised how often you can) there are a lot of non-obvious algorithms that will beat the pants of any non-graphical algorithm。 I got a B。A。 in math, the most useful class I took was graph theory。 。。。more

Dawn Drain

Skiena is an extremely likeable author! I loved his stories and sense of humor。 I think I'd recommend this book over CLRS, although I could imagine a past version of myself being frustrated by the practical lack of detail。 Skiena is an extremely likeable author! I loved his stories and sense of humor。 I think I'd recommend this book over CLRS, although I could imagine a past version of myself being frustrated by the practical lack of detail。 。。。more

Takahiro Ishikawa

The best book to learn algorithm in depth。

Joe

The rare computer programming book that I finished start-to-finish。The first half of the book tells you why some things take longer to compute than other things。 This helps data scientists / statisticians / analysts who work with large amounts of data。In the first half, the math and the computer code can get pretty heavy。 But I found the text around it was written so you could skim the hard stuff, get the idea, and keep going。 The second half of the book is a reference。 As Hadley Wickham said in The rare computer programming book that I finished start-to-finish。The first half of the book tells you why some things take longer to compute than other things。 This helps data scientists / statisticians / analysts who work with large amounts of data。In the first half, the math and the computer code can get pretty heavy。 But I found the text around it was written so you could skim the hard stuff, get the idea, and keep going。 The second half of the book is a reference。 As Hadley Wickham said in his review on Fivebooks, this is helpful for Googling things。 I've found that a lot of computer programming is easy if you just know the name of thing you need to Google。 This gets you there。 。。。more

Izaak

Have cs job interviews to do, and expect computer questions。 This book is kind of a cheat sheet。 It's also good, but not good enough that I finished it。 Have cs job interviews to do, and expect computer questions。 This book is kind of a cheat sheet。 It's also good, but not good enough that I finished it。 。。。more

Samuel

Rather good as a cover to cover read and as reference as well。 It might get a bit too fast paced towards the end, but still loads of good information and ideas

Selim

great book! strongly recommended

Borys

It's been some time, maybe a year, since I've finished this book so my review will try to convey my not perfect memories of the experience。 Well, first and foremost this is not the first book you should read on algorithms, go read Sedgewick or CLRS first。 Without those you will probably miss a ton。 Secondly, I just read a book, thought through some of the exercises but did not actually code anything from the book due to the constant lack of time, I consider this a major error as just reading a b It's been some time, maybe a year, since I've finished this book so my review will try to convey my not perfect memories of the experience。 Well, first and foremost this is not the first book you should read on algorithms, go read Sedgewick or CLRS first。 Without those you will probably miss a ton。 Secondly, I just read a book, thought through some of the exercises but did not actually code anything from the book due to the constant lack of time, I consider this a major error as just reading a book is maybe 30% of what it has to offer。 And finally, yes, this book was fun to read。 I see morphing day-to-day problems into algorithms as an art that has to be practiced and learned, well, you know, sometimes you have to squint to see how one task is really that algorithm, and this book does a good job to get you started, useful manual indeed。 。。。more

Korra

One of the best Algorithmic Design books out there: not only does it approach every problem with the consideration of heuristic and through reasoning and demonstrations, but it also helps with writing simple code。What makes this book better than most other books about the topic is the scrupulous definition of each term, and the absurdly clear explanation of every problem and heuristic that's presented throughout the volume。Overall, i'd definitely suggest this book to anyone interested in algorit One of the best Algorithmic Design books out there: not only does it approach every problem with the consideration of heuristic and through reasoning and demonstrations, but it also helps with writing simple code。What makes this book better than most other books about the topic is the scrupulous definition of each term, and the absurdly clear explanation of every problem and heuristic that's presented throughout the volume。Overall, i'd definitely suggest this book to anyone interested in algorithmic design and computer science, and I think it's a must-read for anyone with even the vaguest interest in the matter。 。。。more

Jared Tobin

Not bad, but I preferred CLRS。 Okasaki is miles more enjoyable than either of them, but of course has a different scope。

Fatima

My favorite Algorithms book。 I will always read and re-read it。