A Programmer's Companion to Algorithm Analysis
Ernst L. Leiss
Chapman & Hall
ISBN 1-58488-673-0
August 2006

The book bridges the gap between algorithms and programs. Although there are plenty ofalgorithm and software engineering textbooks available, no other book examines the gap between the theory of algorithms and the production of software programs. Focusing on practical issues, A Programmer's Companion to Algorithm Analysis carefully details the transition from the design and analysis of an algorithm to the resulting
software program.

Consisting of two main complementary parts, the book emphasizes the concrete aspects of translating an algorithm into software that should perform based on what the algorithm analysis indicated. In the first part, the author describes the idealized universe that algorithm designers inhabit while the second part outlines how this ideal can be adapted to the real world of programming. The book explores analysis techniques, including crossover points, the influence of the memory hierarchy, implications of programming language aspects, including recursion, and problems arising from excessively high computational complexities of solution methods. It concludes with four appendices that discuss basic algorithms; memory hierarchy, virtual memory management, optimizing compilers, and garbage collection; NP-completeness and higher complexity classes; and undecidability in practical terms.

Applying the theory of algorithms to the production of software, this book fulfills the needs of software programmers and developers as well as students by showing how to achieve a functional software program, starting from a correct algorithm.