In trying to program a step-by-step Gauss-Jordan solver, I'm currently merely recursively building a tree of possible operations at each step and then choosing the smallest path. That will be the presented solution.

But I wonder. Is there any math I can apply to a system of linear equations to better predict more efficient operations?