: Steven S. Skiena.
: The Algorithm Design Manual
: Springer Verlag London Limited
: 9781848000704
: 2
: CHF 58.60
:
: Naturwissenschaft
: English
: 742
: DRM
: PC/MAC/eReader/Tablet
: PDF

This expanded and updated second edition of a classic bestseller continues to take the 'mystery' out of designing and analyzing algorithms and their efficacy and efficiency. Expanding on the highly successful formula of the first edition, the book now serves as the primary textbook of choice for any algorithm design course while maintaining its status as the premier practical reference guide to algorithms. NEW: (1) Incorporates twice the tutorial material and exercises. (2) Provides full online support for lecturers, and a completely updated and improved website component with lecture slides, audio and video. (3) Contains a highly unique catalog of the 75 most important algorithmic problems. (4) Includes new 'war stories' and 'interview problems', relating experiences from real-world applications. Written by a well-known, IEEE Computer Science teaching-award winner, this new edition is an essential learning tool for students needing a solid grounding in algorithms, as well as a uniquely comprehensive text/reference for professionals.

Preface5
Contents10
I Practical Algorithm Design16
Introduction to Algorithm Design17
Robot Tour Optimization19
Selecting the Right Jobs23
Reasoning about Correctness25
Modeling the Problem33
About the War Stories36
War Story: Psychic Modeling37
Exercises41
Algorithm Analysis45
The RAM Model of Computation45
The Big Oh Notation48
Growth Rates and Dominance Relations51
Working with the Big Oh54
Reasoning About Efficiency55
Logarithms and Their Applications60
Properties of Logarithms64
War Story: Mystery of the Pyramids65
Advanced Analysis (*)68
Exercises71
Data Structures79
Contiguous vs. Linked Data Structures80
Stacks and Queues85
Dictionaries86
Binary Search Trees91
Priority Queues97
War Story: Stripping Triangulations99
Hashing and Strings103
Specialized Data Structures107
War Story: String 'em Up108
Exercises112
Sorting and Searching117
Applications of Sorting118
Pragmatics of Sorting121
Heapsort: Fast Sorting via Data Structures122
War Story: Give me a Ticket on an Airplane132
Mergesort: Sorting by Divide-and-Conquer134
Quicksort: Sorting by Randomization137
Distribution Sort: Sorting via Bucketing143
War Story: Skiena for the Defense145
Binary Search and Related Algorithms146
Divide-and-Conquer149
Exercises153
Graph Traversal159
Flavors of Graphs160
Data Structures for Graphs165
War Story: I was a Victim of Moore's Law169
War Story: Getting the Graph172
Traversing a Graph175
Breadth-First Search176
Applications of Breadth-First Search180
Depth-First Search183
Applications of Depth-First Search186
Depth-First Search on Directed Graphs192
Exercises198
Weighted Graph Algorithms205
Minimum Spanning Trees206
War Story: Nothing but Nets216
Shortest Paths219
War Story: Dialing for Documents226
Network Flows and Bipartite Matching231
Design Graphs, Not Algorithms236
Exercises239
Combinatorial Search and Heuristic Methods244
Backtracking245
Search Pruning252
Sudoku253
War Story: Covering Chessboards258
Heuristic Search Methods261
War Story: Only it is Not a Radio274
War Story: Annealing Arrays277
Other Heuristic Search Methods280
Parallel Algorithms281
War Story: Going Nowhere Fast282
Exercises284
Dynamic Programming287
Caching vs. Computation288
Approximate String Matching294
Longest Increasing Sequence303
War Story: Evolution of the Lobster305
The Partition Problem308
Parsing Context-Free Grammars312
Limitations of Dynamic Programming: TSP315
War Story: What's Past is Prolog318
War Story: Text Compression for Bar Codes321
Exercises324
Intractable Problems and Approximation Algorithms330
Problems and Reductions331
Reductions for Algorithms333
Elementary Hardness Reductions337
Satisfiability342
Creative Reductions344
The Art of Proving Hardness348
War Story: Hard Against the Clock351
War Story: And Then I Failed353
P vs. NP355
Dealing with NP-complete Problems358
Exercises364
How to Design Algorithms370
II The Hitchhiker's Guide to Algorithms375
A Catalog of Algorithmic Problems376
Data Structures379
Dictionaries380
Priority Queues386
Suffix Trees and Arrays390
Graph Data Structures394
Set Data Structures398
Kd-Trees402
Numerical Problems406
Solving Linear Equations408
Bandwidth Reduction 411
Matrix Multiplication414
Determinants and Permanents417
Constrained and Unconstrained Optimization420
Linear Programming424
Random Number Generation428
Factoring and Primality Testing433
Arbitrary-Precision