Computational experiments on algorithms can supplement theoretical analysis by showing what algorithms, implementations and speed-up methods work best for specific machines or problems.
This book guides the reader through the nuts and bolts of the major experimental questions: What should I measure?
What inputs should I test? How do I analyze the data? To answer these questions the book draws on ideas from algorithm design and analysis, computer systems, and statistics and data analysis.
The wide-ranging discussion includes a tutorial on system clocks and CPU timers, a survey of strategies for tuning algorithms and data structures, a cookbook of methods for generating random combinatorial inputs, and a demonstration of variance reduction techniques.
The book can be used by anyone who has taken a course or two in data structures and algorithms.
A companion website, AlgLab (www.cs.amherst.edu/alglab) contains downloadable files, programs and tools for use in experimental projects.