References for the idea of backtracking swapping algorithm: