As society attempts to solve more and more problems computationally, the need for efficient algorithms to solve these problems continues to grow. Just as importantly, to be able to apply or adapt ...