A Programmer's Companion to Algorithm Analysis

A Programmer's Companion to Algorithm Analysis

Published:
Content:
Author(s):
Free Standard Shipping

Purchasing Options

Paperback
$68.95
ISBN 9781584886730
Cat# C6730
Add to cart
eBook
ISBN 9781420011708
Cat# CE6730
 

Features

  • Describes how to progress from an effective algorithm to a successful software program
  • Suggests ways to avoid the major problems that software engineers and programmers encounter when implementing algorithms
  • Explains the fundamental differences between the computational model assumed for algorithms and real architectures
  • Emphasizes the implications of the memory hierarchy on program efficiency
  • Explores the interactions among the program, compiler, and run-time support system
  • Summary

    Until now, no other book examined 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, such as 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, A Programmer's Companion to Algorithm Analysis fulfills the needs of software programmers and developers as well as students by showing that with the correct algorithm, you can achieve a functional software program.

    Table of Contents

    PART 1 THE ALGORITHM SIDE: REGULARITY, PREDICTABILITY, AND ASYMPTOTICS
    A Taxonomy of Algorithmic Complexity
    Fundamental Assumptions Underlying Algorithmic Complexity
    Examples of Complexity Analysis
    PART 2 THE SOFTWARE SIDE: DISAPPOINTMENTS AND HOW TO AVOID THEM
    Sources of Disappointments
    Implications of Nonuniform Memory for Software
    Implications of Compiler and Systems Issues for Software
    Implicit Assumptions
    Implications of the Finiteness of the Representation of Numbers
    Asymptotic Complexities and the Selection of Algorithms
    Infeasibility and Undecidability: Implications for Software Development
    PART 3 CONCLUSION
    Appendix I: Algorithms Every Programmer Should Know
    Appendix II: Overview of Systems Implicated in Program Analysis
    Appendix III: NP-Completeness and Higher Complexity Classes
    Appendix IV: Review of Undecidability
    BIBLIOGRAPHY
    INDEX

    Editorial Reviews

    "… an interesting book which addresses some of the issues which inhibit the development of perfect-world software. … In my opinion, this book should be on the bookshelf of anyone aspiring to become a good programmer. … this book would be a good auxiliary book in courses on algorithms, especially those intended for students intent on becoming software developers. Similarly with an advanced programming-type course. The book also would work well for self-study."
    —Dean Kelley, SIGACT News, Vol. 40, No. 2

    Textbooks
    Other CRC Press Sites
    Featured Authors
    STAY CONNECTED
    Facebook Page for CRC Press Twitter Page for CRC Press You Tube Channel for CRC Press LinkedIn Page for CRC Press Google Plus Page for CRC Press
    Sign Up for Email Alerts
    © 2014 Taylor & Francis Group, LLC. All Rights Reserved. Privacy Policy | Cookie Use | Shipping Policy | Contact Us