If you have it already coded in any language, not just pseudo coded on paper, you should start by adding some test cases, ideally with known results.
Once you have baseline results for your first implementation, you can start to refactor it to a more understandable form by extracting function, etc.
This approach is based on Test Driven Development and seems to be very appropriate to what you need to do.
Note: You can use this approach even if you don't have known results for your inputs. That won't tell you if your algorithm is right but you will find any problems arising from your subsequent refactoring as results different from what you had in your baseline. Now you must find which version or your code was right ;)
With good results as baseline, you should have no problem rewriting your algorithm a small step at a time (refactoring it) while being sure you did not break anything in the meantime by running it on your data.
If you are interested more in the refactoring techniques that can help in bigger code and object-oriented code, see Fowler's book: