Lomuto's and Hoare's partitioning functions could be reused across different algorithms. It'll be a good idea to put them in separate files.