Michael Goodrich and Roberto Tamassia, authors of the successful, Data Structures and Algorithms in Java, 2/e, have written Algorithm Engineering, a text designed to provide a comprehensive introduction to the design, implementation and analysis of computer algorithms and data structures from a modern perspective. This book offers theoretical analysis techniques as well as algorithmic design patterns and experimental methods for the engineering of algorithms.
Market: Computer Scientists; Programmers.
I Fundamental Tools 1
1 Algorithm Analysis 3
1.1 Methodologies for Analyzing Algorithms 5
1.2 Asymptotic Notation 13
1.3 A Quick Mathematical Review 21
1.4 Case Studies in Algorithm Analysis 31
1.5 Amortization 34
1.6 Experimentation 42
1.7 Exercises 47
2 Basic Data Structures 55
2.1 Stack sand Queues 57
2.2 Vectors, Lists, and Sequences 65
2.3 Trees 75
2.4 Priority Queues and Heaps 94
2.5 Dictionaries and Hash Tables 114
2.6 Java Example: Heap 128
2.7 Exercises 131
3 Search Trees and Skip Lists 139
3.1 Ordered Dictionaries and Binary Search Trees 141
3.2 AVL Trees 152
3.3 Bounded-Depth Search Trees 159
3.4 Splay Trees 185
3.5 Sk i p Lists 195
3.6 Java Example: AVL and Red-Black Trees 202
3.7 Exercises 212
l3*