I prefer to keep distinct algorithmic implementations in separate files. The benefits are ease of understanding of an algorithm and a clear road-map for implementing additional path followers.