Я удивлен, что итеративный подход менее эффективен. Обычно рекурсивный подход будет медленнее из-за накладных расходов на вызовы методов. Если ваш алгоритм может быть реализован как хвост-рекурсивный, он почти наверняка будет быстрее итеративной реализации. Можете ли вы рассказать нам больше о том, что вы на самом деле пытаетесь сделать? Возможно, разница в производительности более алгоритмична, чем просто переключение итерации на рекурсию. Вот пример из некоторых лекционных заметок CS , в которых упоминается рекурсивный подход к вычислению чисел Фибоначчи, который равен O (2 ^ n), тогда как итеративный подход - O (n). Я считаю (хотя я не пробовал) возможно написать рекурсивный генератор чисел Фибоначчи, который будет O (n).
Edit:
Последняя мысль. ИМХО, было бы намного лучше использовать более медленный подход, свободный от проблем переполнения стека, чем вводить всю сложность попыток определить, что вы собираетесь переполнить стек, и иметь какой-то резервный механизм, чтобы избежать этого.