public void ReduceThenSolveReducedProblems(ISortProblem sortProblem, ISortProblemSolver reducedSortProblemSolver) { if (sortProblem.IsBasicCase) { return; } var reducedProblems = sortProblem.GetReducedProblems(); foreach (var problem in reducedProblems) { reducedSortProblemSolver.SolveReducedProblem(problem); } }