A idéia básica do design de algoritmo recursivo é:
Para um problema complexo, decomponha o problema original em vários subproblemas relativamente simples e continue até que o subproblema seja tão simples que possa ser resolvido diretamente, ou seja, é a saída da recursividade, para que o problema original possa ser resolvido recursivamente.
Ao fazer algoritmos recursivos, você deve entender a saída, ou seja, deve ter uma condição final recursiva clara ao fazer algoritmos recursivos. Isso é muito importante. De fato, essa saída é muito fácil de entender. É apenas uma condição. Quando essa condição é atendida, não recorremos mais.
A chave para entender é:
(1) Saída recursiva
(2) O push do solo se aproxima gradualmente da saída
Recursão é o comportamento do próprio método que se chama. Cuidado em escrever o cabeçalho da recursão, ou seja, quando sair da recursão.
Evite um ciclo vicioso.
Exemplo 1, imprima 1 ~ 100 por recursivamente
pacote com.lanhuigu.base; public class CursionTest {private static int i = 0;/** * Imprima recursivamente 1 a 100 */public static void testcursion01 () {i ++; // auto-increment se (i <= 100) {// retorno quando menos ou igual a 100, caso contrário, o retorno será System.out.println (i); testCursion01 (); // Retorno de chamada: Chamada em si} else {System.out.println ("jogo over!");}} Public static void main (string [] args) {testcursion01 (); // imprima 1 ~ 100}}}}}}}Exemplo 2: Calcule recursivamente o fatorial de um certo número
pacote com.lanhuigu.base; public class CursionTest {/***calcula recursivamente a fatorial de um certo número*/public static int testFactorial (int n) {if (n == 1) {return 1;} else {return n*testFacorial (n-1);}} estática pública void (] Calcule o fatorial de 5}}Em relação aos fatores de cálculo recursivo, diagrama de estrutura de análise de memória recursiva:
Primeiro, definiu a linha longa, finalmente feche a linha e depois puxe o peixe para terra.
Resumir
O exposto acima é sobre a análise de exemplo do algoritmo recursivo Java neste artigo, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!