Algorithms for Sorting by Reversals