Pattern Recognition: An Algorithmic Approach (Undergraduate Topics in Computer Science)