Skip to content

Instantly share code, notes, and snippets.

@AdamMescher
Created March 6, 2019 07:01
Show Gist options
  • Save AdamMescher/9e88327c10dfe8c9efcb9bd36fb782cf to your computer and use it in GitHub Desktop.
Save AdamMescher/9e88327c10dfe8c9efcb9bd36fb782cf to your computer and use it in GitHub Desktop.
The Algorithm Design Manual

Preface

Designing correct, efficient, and implementable algorithms for real-world problems requires access to two distinct boddies of knowledge, Techniques and Resouces

  • Techniques
    • Good algorithm designers understand several fundamentamental algorithm design techniques:
      • Data Structures
      • Dynamic Programming
      • Depth-first search
      • Backtracking
      • Heuristics
    • Single most important design technique - modeling
      • art of abstraction is a messy real-world application into a clean problem suitable for algorithmic attack
  • Resources
    • Stand on the shoulders of giants
    • rather than laboring from scratch, can figure out what is known about a particular problem
    • rather than re-implementing popular algorithms from scratch, seek existing implementations to serve as starting point
    • Familiar with many classic algorithmic problems, which provide sufficient source material to model most any application
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment