Catalog

Record Details

Catalog Search



Algorithms and Data Structures The Basic Toolbox  Cover Image E-book E-book

Algorithms and Data Structures [electronic resource] : The Basic Toolbox / by Kurt Mehlhorn, Peter Sanders.

Mehlhorn, Kurt. (author.). Sanders, Peter. (author.). SpringerLink (Online service) (Added Author).

Record details

  • ISBN: 9783540779780
  • Physical Description: online resource.
  • Publisher: Berlin, Heidelberg : Springer Berlin Heidelberg, 2008.
Subject: Computer science.
Data structures (Computer science).
Computer software.
Electronic data processing.
Computer Science.
Algorithm Analysis and Problem Complexity.
Data Structures.
Computing Methodologies.

Electronic resources


1. Appetizer: Integer Arithmetics1
1.1. Addition2
1.2. Multiplication: The School Method3
1.3. Result Checking6
1.4. A Recursive version of the School Method7
1.5. Karatsuba Multiplication9
1.6. Algorithm Engineering11
1.7. The Programs13
1.8. Proofs of Lemma 1.5 and Theorem 1.716
1.9. Implementation Notes
1.10. Historical Notes and Further Findings18
2. Introduction19
2.1. Asymptotic Notation19
2.2. The Machine Model20
2.3. Pseudocode23
2.4. Designing Correct Algorithms and Programs31
2.5. An Example - Binary Search34
2.6. Basic Algorithm Analysis41
2.7. Average-Case Analysis36
2.8. Randomized Algorithms45
2.9. Graphs49
2.10. P and NP49
2.11. Implementation Notes56
2.12. Historical Notes and Further Findings57
3. Representing Sequences by Arrays and Linked Lists59
3.1. Linked Lists60
3.2. Unbounded Arrays66
3.3. *Amortized Analysis71
3.4. Stacks and Queues74
3.5. Lists Versus Arrays77
3.6. Implementation Notes78
3.7. Historical Notes and Further Findings79
4. Hash Tables and Associative Arrays81
4.1. Hashing and Chaining83
4.2. Universal Hashing85
4.3. Hashing with Linear Probing90
4.4. Chaining Versus Linear Probing92
4.5. *Perfect Hashing92
4.6. Implementation Notes95
4.7. Historical Notes and Further Findings97
5. Sorting and Selection99
5.1. Simple Sorters101
5.2. Mergesort - an O(n log n) Sorting Algorithm103
5.3. A Lower Bound106
5.4. Quicksort108
5.5. Selection114
5.6. Breaking the Lower Bound116
5.7. *External Sorting118
5.8. Implementation Notes122
5.9. Historical Notes and Further Findings124
6. Priority Queues127
6.1. Binary Heaps129
6.2. Addressable Priority Queues133
6.3. *External Memory139
6.4. Implementation Notes141
6.5. Historical Notes and Further Findings142
7. Sorted Sequences145
7.1. Binary Search Trees147
7.2. (a, b)-Trees and Red-Black Trees149
7.3. More Operations156
7.4. Amortized Analysis of Update Operations158
7.5. Augmented Search Trees160
7.6. Implementation Notes162
7.7. Historical Notes and Further Findings164
8. Graph Representation167
8.1. Unordered Edge Sequences168
8.2. Adjacency Arrays - Static Graphs168
8.3. Adjacency Lists - Dynamic Graphs170
8.4. The Adjacency Matrix Representation171
8.5. Implicit Representations172
8.6. Implementation Notes172
8.7. Historical Notes and Further Findings174
9. Graph Traversal175
9.1. Breadth-First Search176
9.2. Depth-First Search178
9.3. Implementation Notes188
9.4. Historical Notes and Further Findings189
10. Shortest Paths191
10.1. From Basic Concepts to a Generic Algorithm192
10.2. Directed Acyclic Graphs195
10.3. Nonnegative Edge Costs (Dijkstra's Algorithm)196
10.4. *Average-Case Analysis of Dijkstra's Algorithm199
10.5. Monotone Integer Priority Queues201
10.6. Arbitrary Edge Costs (Bellman-Ford Algorithm)206
10.7. All-Pairs Shortest Paths and Node Potentials207
10.8. Shortest-Path Queries209
10.9. Implementation Notes213
10.10. Historical Notes and Further Findings214
11. Minimum Spanning Trees217
11.1. Cut and Cycle Properties218
11.2. The Jarnik-Prim Algorithm219
11.3. Kruskal's Algorithm221
11.4. The Union-Find Data Structure222
11.5. *External Memory225
11.6. Applications228
11.7. Implementation Notes231
11.8. Historical Notes and Further Findings231
12. Generic Approaches to Optimization233
12.1. Linear Programming - a Black-Box Solver234
12.2. Greedy Algorithms - Never Look Back239
12.3. Dynamic Programming - Building It Piece by Piece243
12.4. Systematic Search - When in Doubt, Use Brute Force246
12.5. Local Search - Think Globally, Act Locally249
12.6. Evolutionary Algorithms259
12.7. Implementation Notes261
12.8. Historical Notes and Further Findings262
A. Appendix263
A.1. Mathematical Symbols263
A.2. Mathematical Concepts264
A.3. Basic Probability Theory266
A.4. Useful Formulae269
References273
Index285

Additional Resources