Atjaunināt sīkdatņu piekrišanu

Algorithm Design Manual 2nd ed. 2008 [Mīkstie vāki]

4.34/5 (2800 ratings by Goodreads)
  • Formāts: Paperback / softback, 730 pages, height x width: 235x178 mm, weight: 1298 g, 2 Tables, black and white; 115 Illustrations, black and white; XVI, 730 p. 115 illus., 1 Paperback / softback
  • Izdošanas datums: 13-Oct-2010
  • Izdevniecība: Springer London Ltd
  • ISBN-10: 1849967202
  • ISBN-13: 9781849967204
  • Mīkstie vāki
  • Cena: 81,15 €*
  • * Šī grāmata vairs netiek publicēta. Jums tiks paziņota lietotas grāmatas cena
  • Šī grāmata vairs netiek publicēta. Jums tiks paziņota lietotas grāmatas cena.
  • Daudzums:
  • Ielikt grozā
  • Pievienot vēlmju sarakstam
  • Formāts: Paperback / softback, 730 pages, height x width: 235x178 mm, weight: 1298 g, 2 Tables, black and white; 115 Illustrations, black and white; XVI, 730 p. 115 illus., 1 Paperback / softback
  • Izdošanas datums: 13-Oct-2010
  • Izdevniecība: Springer London Ltd
  • ISBN-10: 1849967202
  • ISBN-13: 9781849967204
This newly expanded and updated second edition of the best-selling classic continues to take the "mystery" out of designing algorithms, and analyzing their efficacy and efficiency. Expanding on the first edition, the book now serves as the primary textbook of choice for algorithm design courses while maintaining its status as the premier practical reference guide to algorithms for programmers, researchers, and students.

The reader-friendly Algorithm Design Manual provides straightforward access to combinatorial algorithms technology, stressing design over analysis. The first part, Techniques, provides accessible instruction on methods for designing and analyzing computer algorithms. The second part, Resources, is intended for browsing and reference, and comprises the catalog of algorithmic resources, implementations and an extensive bibliography.





NEW to the second edition:

 Doubles the tutorial material and exercises over the first edition

Provides full online support for lecturers, and a completely updated and improved website component with lecture slides, audio and video

Contains a unique catalog identifying the 75 algorithmic problems that arise most often in practice, leading the reader down the right path to solve them

Includes several NEW "war stories" relating experiences from real-world applications

 Provides up-to-date links leading to the very best algorithm implementations available in C, C++, and Java

Recenzijas

From the reviews of the second edition:

This is detailed and timeless book that I keep reaching for. A useful book that I can not keep access to long enough. It is a important book to have in your library. Unlike other algorithm books that I have the algorithms are written independent of any programming language. (Mary Anne, Cats and Dogs with Data, maryannedata.com, April, 2014)

The Algorithm Design Manual by Steven Skiena is aimed at two groups of people: students and professionals. It is written in an informal style that I found pleasant and engaging. The books unique structure makes it more likely to be immediately useful to the practitioner who has problem to solve and wants to quickly make progress . the book succeeds admirably. would be helpful to the student who has never seen this material before. Overall, I recommend this book warmly. (Neelakantan Kartha, The Book Review Column, 2011)

Algorithms are the very heart of computing . This book is about right for most people. Each of the topics is treated in a readable informal style with lots of asides and accounts of personal experiences - war stories in implementing algorithms. If you want to use it as a course textbook then there are lots of exercises at the end of every chapter. Highly recommended. (Mike James, I Programmer, September, 2009)

"Addressing the main difficulties of solving problems, this book goes far beyond the design of algorithms. It is essential for scientists, engineers, and any professionals who aim to solve problems, with a noticeable emphasis on real problems. It will not only serve as a valuable undergraduate textbook, but it will also become an irreplaceable reference guide for most professionals in the area." (Carlos Linares Lopez, Computing Reviews, February, 2009)

"Skiena focuses on the practical aspects of algorithm design and use. this work fills an important gap in the knowledge of CS practitioners and students. this book is suitable as a text for an undergraduate algorithms class, but also as an invaluable reference for the practicing programmer. This second edition has updated the bibliography to include recent works, making it an extensive bibliography. The index is also thorough and very useful for finding specific problems." (William Fahle, ACM Computing Reviews, December, 2008)

"For a decade, Steven Skienas Algorithm Design Manual retained its title as the best and most comprehensive practical algorithm guide to help identify and solve problems. It is now available in an improved second edition that is worth buying simply for the updates. Every programmer should read this book, and anyone working in the field should keep it close to hand. Would I recommend it? Absolutely. This is the best investment a programmer or aspiring programmer can make." (Harold Thimbleby, Times Higher Education, November, 2008)





"My absolute favorite for this kind of interview preparation is Steven Skienas The Algorithm Design Manual. More than any other book it helped me understand just how astonishingly commonplace graph problems are -- they should be part of every working programmers toolkit. The book also covers basic data structures and sorting algorithms, which is a nice bonus. every 1 pager has a simple picture, making it easy to remember. This is a great way to learn how to identify hundreds of problem types." (Steve Yegge, Steve Yegges Blog, March, 2008)

"...the book is an algorithm implementation treasure trove, and putting all of these implementations in one place was no small feat. The list of implementations, an extensive bibliography make the book an invaluable resource for everyone interested in the subject." (ACM Computing Reviews)

I Practical Algorithm Design
1(360)
1 Introduction to Algorithm Design
3(28)
1.1 Robot Tour Optimization
5(4)
1.2 Selecting the Right Jobs
9(2)
1.3 Reasoning about Correctness
11(8)
1.4 Modeling the Problem
19(3)
1.5 About the War Stories
22(1)
1.6 War Story: Psychic Modeling
23(4)
1.7 Exercises
27(4)
2 Algorithm Analysis
31(34)
2.1 The RAM Model of Computation
31(3)
2.2 The Big Oh Notation
34(3)
2.3 Growth Rates and Dominance Relations
37(3)
2.4 Working with the Big Oh
40(1)
2.5 Reasoning About Efficiency
41(5)
2.6 Logarithms and Their Applications
46(4)
2.7 Properties of Logarithms
50(1)
2.8 War Story: Mystery of the Pyramids
51(3)
2.9 Advanced Analysis (*)
54(3)
2.10 Exercises
57(8)
3 Data Structures
65(38)
3.1 Contiguous vs. Linked Data Structures
66(5)
3.2 Stacks and Queues
71(1)
3.3 Dictionaries
72(5)
3.4 Binary Search Trees
77(6)
3.5 Priority Queues
83(2)
3.6 War Story: Stripping Triangulations
85(4)
3.7 Hashing and Strings
89(4)
3.8 Specialized Data Structures
93(1)
3.9 War Story: String 'em Up
94(4)
3.10 Exercises
98(5)
4 Sorting and Searching
103(42)
4.1 Applications of Sorting
104(3)
4.2 Pragmatics of Sorting
107(1)
4.3 Heapsort: Fast Sorting via Data Structures
108(10)
4.4 War Story: Give me a Ticket on an Airplane
118(2)
4.5 Mergesort: Sorting by Divide-and-Conquer
120(3)
4.6 Quicksort: Sorting by Randomization
123(6)
4.7 Distribution Sort: Sorting via Bucketing
129(2)
4.8 War Story: Skiena for the Defense
131(1)
4.9 Binary Search and Related Algorithms
132(3)
4.10 Divide-and-Conquer
135(4)
4.11 Exercises
139(6)
5 Graph Traversal
145(46)
5.1 Flavors of Graphs
146(5)
5.2 Data Structures for Graphs
151(4)
5.3 War Story: I was a Victim of Moore's Law
155(3)
5.4 War Story: Getting the Graph
158(3)
5.5 Traversing a Graph
161(1)
5.6 Breadth-First Search
162(4)
5.7 Applications of Breadth-First Search
166(3)
5.8 Depth-First Search
169(3)
5.9 Applications of Depth-First Search
172(6)
5.10 Depth-First Search on Directed Graphs
178(6)
5.11 Exercises
184(7)
6 Weighted Graph Algorithms
191(39)
6.1 Minimum Spanning Trees
192(10)
6.2 War Story: Nothing but Nets
202(3)
6.3 Shortest Paths
205(7)
6.4 War Story: Dialing for Documents
212(5)
6.5 Network Flows and Bipartite Matching
217(5)
6.6 Design Graphs, Not Algorithms
222(3)
6.7 Exercises
225(5)
7 Combinatorial Search and Heuristic Methods
230(43)
7.1 Backtracking
231(7)
7.2 Search Pruning
238(1)
7.3 Sudoku
239(5)
7.4 War Story: Covering Chessboards
244(3)
7.5 Heuristic Search Methods
247(13)
7.6 War Story: Only it is Not a Radio
260(3)
7.7 War Story: Annealing Arrays
263(3)
7.8 Other Heuristic Search Methods
266(1)
7.9 Parallel Algorithms
267(1)
7.10 War Story: Going Nowhere Fast
268(2)
7.11 Exercises
270(3)
8 Dynamic Programming
273(43)
8.1 Caching vs. Computation
274(6)
8.2 Approximate String Matching
280(9)
8.3 Longest Increasing Sequence
289(2)
8.4 War Story: Evolution of the Lobster
291(3)
8.5 The Partition Problem
294(4)
8.6 Parsing Context-Free Grammars
298(3)
8.7 Limitations of Dynamic Programming: TSP
301(3)
8.8 War Story: What's Past is Prolog
304(3)
8.9 War Story: Text Compression for Bar Codes
307(3)
8.10 Exercises
310(6)
9 Intractable Problems and Approximation Algorithms
316(40)
9.1 Problems and Reductions
317(2)
9.2 Reductions for Algorithms
319(4)
9.3 Elementary Hardness Reductions
323(5)
9.4 Satisfiability
328(2)
9.5 Creative Reductions
330(4)
9.6 The Art of Proving Hardness
334(3)
9.7 War Story: Hard Against the Clock
337(2)
9.8 War Story: And Then I Failed
339(2)
9.9 P vs. NP
341(3)
9.10 Dealing with NP-complete Problems
344(6)
9.11 Exercises
350(6)
10 How to Design Algorithms
356(5)
II The Hitchhiker's Guide to Algorithms
361(304)
11 A Catalog of Algorithmic Problems
363(3)
12 Data Structures
366(27)
12.1 Dictionaries
367(6)
12.2 Priority Queues
373(4)
12.3 Suffix Trees and Arrays
377(4)
12.4 Graph Data Structures
381(4)
12.5 Set Data Structures
385(4)
12.6 Kd-Trees
389(4)
13 Numerical Problems
393(41)
13.1 Solving Linear Equations
395(3)
13.2 Bandwidth Reduction
398(3)
13.3 Matrix Multiplication
401(3)
13.4 Determinants and Permanents
404(3)
13.5 Constrained and Unconstrained Optimization
407(4)
13.6 Linear Programming
411(4)
13.7 Random Number Generation
415(5)
13.8 Factoring and Primality Testing
420(3)
13.9 Arbitrary-Precision Arithmetic
423(4)
13.10 Knapsack Problem
427(4)
13.11 Discrete Fourier Transform
431(3)
14 Combinatorial Problems
434(41)
14.1 Sorting
436(5)
14.2 Searching
441(4)
14.3 Median and Selection
445(3)
14.4 Generating Permutations
448(4)
14.5 Generating Subsets
452(4)
14.6 Generating Partitions
456(4)
14.7 Generating Graphs
460(5)
14.8 Calendrical Calculations
465(3)
14.9 Job Scheduling
468(4)
14.10 Satisfiability
472(3)
15 Graph Problems: Polynomial-Time
475(48)
15.1 Connected Components
477(4)
15.2 Topological Sorting
481(3)
15.3 Minimum Spanning Tree
484(5)
15.4 Shortest Path
489(6)
15.5 Transitive Closure and Reduction
495(3)
15.6 Matching
498(4)
15.7 Eulerian Cycle/Chinese Postman
502(3)
15.8 Edge and Vertex Connectivity
505(4)
15.9 Network Flow
509(4)
15.10 Drawing Graphs Nicely
513(4)
15.11 Drawing Trees
517(3)
15.12 Planarity Detection and Embedding
520(3)
16 Graph Problems: Hard Problems
523(39)
16.1 Clique
525(3)
16.2 Independent Set
528(2)
16.3 Vertex Cover
530(3)
16.4 Traveling Salesman Problem
533(5)
16.5 Hamiltonian Cycle
538(3)
16.6 Graph Partition
541(3)
16.7 Vertex Coloring
544(4)
16.8 Edge Coloring
548(2)
16.9 Graph Isomorphism
550(5)
16.10 Steiner Tree
555(4)
16.11 Feedback Edge/Vertex Set
559(3)
17 Computational Geometry
562(58)
17.1 Robust Geometric Primitives
564(4)
17.2 Convex Hull
568(4)
17.3 Triangulation
572(4)
17.4 Voronoi Diagrams
576(4)
17.5 Nearest Neighbor Search
580(4)
17.6 Range Search
584(3)
17.7 Point Location
587(4)
17.8 Intersection Detection
591(4)
17.9 Bin Packing
595(3)
17.10 Medial-Axis Transform
598(3)
17.11 Polygon Partitioning
601(3)
17.12 Simplifying Polygons
604(3)
17.13 Shape Similarity
607(3)
17.14 Motion Planning
610(4)
17.15 Maintaining Line Arrangements
614(3)
17.16 Minkowski Sum
617(3)
18 Set and String Problems
620(37)
18.1 Set Cover
621(4)
18.2 Set Packing
625(3)
18.3 String Matching
628(3)
18.4 Approximate String Matching
631(6)
18.5 Text Compression
637(4)
18.6 Cryptography
641(5)
18.7 Finite State Machine Minimization
646(4)
18.8 Longest Common Substring/Subsequence
650(4)
18.9 Shortest Common Superstring
654(3)
19 Algorithmic Resources
657(8)
19.1 Software Systems
657(6)
19.2 Data Sources
663(1)
19.3 Online Bibliographic Resources
663(1)
19.4 Professional Consulting Services
664(1)
Bibliography 665(44)
Index 709
Steven Skiena is Professor of Computer Science at Stony Brook University. His research interests include the design of graph, string, and geometric algorithms, and their applications (particularly to biology). He is the author of four books, including "The Algorithm Design Manual" and "Calculated Bets: Computers, Gambling, and Mathematical Modeling to Win". He is recipient of the ONR Young Investigator Award and the IEEE Computer Science and Engineering Undergraduate Teaching Award.