Essential Algorithms: A Practical Approach to