Practical Algorithms for Programmers by John Rex