We present distributed algorithms for sensor localization based on the Gauss-Newton method. Each sensor updates its estimated location by computing the Gauss-Newton step for a local cost function and choosing a proper step length. Then it transmits the updated estimate to all the neighboring sensors. The proposed algorithms provide non-increasing values of a global cost function. It is shown in the paper that the algorithms have computational complexity of O(n) per iteration and a reduced communication cost over centralized algorithms.