The most commonly used algorithm for approximating ground states of 1D quantum systems is the Density Matrix Renormalization Group approach (DMRG). DMRG works very well in practice, but there is no proved guarantee for when it works, and it is easy to come up with counter examples in which it gets stuck in a local minimum. In this paper we describe an efficient classical algorithm which finds a good approximation of the ground state of a one dimensional quantum system, under the condition that such a good approximation exists by a Matrix Product State (MPS) of constant bond dimension (BD). In case the guarantee is only for a good approximation by an MPS of logarithmic BD, the algorithm becomes somewhat less efficient: it will take quasi-polynomial time to find the approximation. The assumption that the BD is small seems to hold for many interesting physical systems. We note that if the bound on the BD is polynomial, a polynomial time algorithm is unlikely to exist, since it is known that the problem of finding such approximations is NP-complete.