First and foremost, my wife Shannon deserves the highest acknowledgement possible. Some says she’s earned sainthood. Besides being my official grammar checker, she steadfastly stands between me and the world in order to afford me time for pursuits such as this. Thanks seems woefully inadequate to express the depth of my gratitude. May we have another thirty years of happiness together.

A heart felt thank you to my study group (names listed below) who tirelessly reviewed countless revisions of this content. None of this would have been possible without the guiding force of your feedback.

  • Daniel Ioppolo
  • Howard Reith
  • Sanford Schaffer
  • Thomas Evans

Finally, the following books are an invaluable resource to any programmer. I made use of each one judiciously for reference. The entire industry owns the authors a great deal of gratitude.

  1. Introduction to Algorithms, Third Edition by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
  2. Algorithms Illuminated (Part 1): The Basics by Tim Roughgarden
  3. Algorithms Illuminated (Part 2): Graph Algorithms and Data Structures by Tim Roughgarden
  4. Algorithms Illuminated (Part 3): Greedy Algorithms and Dynamic Programming by Tim Roughgarden
  5. Algorithms Illuminated (Part 4): Algorithms for NP-Hard Problems by Tim Roughgarden
  6. Algorithm Design by Jon Kleinberg and Éva Tardos
  7. Algorithms by Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani
  8. The Art of Computer Programming by Donald Knuth