Sudoku solver algorithm. A key aspect of an algorithm is that it terminates.