Algorithms for Approximation