Introducing a NEW addition to our growing library of computer science titles, Algorithm Design and Applications, by Michael T. Goodrich & Roberto Tamassia! Algorithms is a course required for all computer science majors, with a strong focus on theoretical topics. Students enter the course after gaining hands-on experience with computers, and are expected to learn how algorithms can be applied to a variety of contexts. This new book integrates application with theory.
Goodrich & Tamassia believe that the best way to teach algorithmic topics is to present them in a context that is motivated from applications to uses in society, computer games, computing industry, science, engineering, and the internet. The text teaches students about designing and using algorithms, illustrating connections between topics being taught and their potential applications, increasing engagement.
Preface xi
1 AlgorithmAnalysis 1
1.1 Analyzing Algorithms 3
1.2 A Quick Mathematical Review 19
1.3 A Case Study in Algorithm Analysis 29
1.4 Amortization 34
1.5 Exercises 42
Part I: Data Structures
2 BasicDataStructures 51
2.1 Stacks and Queues 53
2.2 Lists 60
2.3 Trees 68
2.4 Exercises 84
3 BinarySearchTrees 89
3.1 Searches and Updates 91
3.2 Range Queries 101
3.3 Index-Based Searching 104
3.4 Randomly-Constructed Search Trees 107
3.5 Exercises 110
4 BalancedBinarySearchTrees 115
4.1 Ranks and RotlCÚ