Основная идея рекурсивного дизайна алгоритма такова:
Для сложной проблемы разместите исходную проблему на несколько относительно простых подпрограмм и продолжайте до тех пор, пока субпроекта не станет настолько проста, что ее можно решить напрямую, то есть это выход рекурсивности, так что исходная проблема может быть решюсирована.
При выполнении рекурсивных алгоритмов вы должны понять выход, то есть у вас должно быть четкое рекурсивное конечное состояние при выполнении рекурсивных алгоритмов. Это очень важно. На самом деле, этот выход очень легко понять. Это просто состояние. Когда это условие выполняется, мы больше не повторяемся.
Ключ для понимания:
(1) рекурсивный выход
(2) Наземный толчок постепенно приближается к выходу
Рекурсия - это поведение самого метода, которое вызывает сам. Будьте осторожны, чтобы написать заголовок рекурсии, то есть когда выходить из рекурсии.
Избегайте порочного цикла.
Пример 1, печать 1 ~ 100 по рекурсивному
Пакет com.lanhuigu.base; public class cursiontest {private static int i = 0;/** * рекурсивно печатайте от 1 до 100 */public static void testcursion01 () {i ++; // самостоятельно, если (i <= 100) {// Callback, когда меньше или равна 100, иначе вызовет вызов, чтобы отключить мертвое плавание System.out.println (i); testcursion01 (); // обратный вызов: сама вызов} else {System.out.println ("Game Over!");}} Public static void main (string [] args) {testcursion01 (); // print 1 ~ 100}}}}}}}}}}}}}}}}}}}}}}}}}}}}Пример 2: рекурсивно рассчитайте фактор определенного числа
Пакет com.lanhuigu.base; public class cursiontest {/***Рекурсивно вычислить факторию определенного числа*/public static int testfactorial (int n) {if (n == 1) {return 1;} else {return n*testfactorial (n-1);} public void main (string) {system. Рассчитайте фактор 5}}Что касается факториалов рекурсивного расчета, схема структуры анализа рекурсивной памяти:
Сначала установите длинную линию, наконец закройте линию, а затем вытащите рыбу на берег.
Суммировать
Выше приведено примером анализа алгоритма рекурсивного Java в этой статье, я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!