Recursão
-
O método A chama o método B, é fácil de entender!
-
A recursão é: Uma chamada de método usa o método A! É chamar a si mesmo
Usando recursão, programas simples podem ser usados para resolver alguns problemas complexos. Geralmente converte um problema grande e complexo, camada por camada, em um problema menor semelhante ao problema original a ser resolvido. A estratégia recursiva requer apenas um pequeno número de programas para descrever os vários cálculos repetitivos necessários para resolver o problema, reduzindo significativamente a quantidade de código do programa. A capacidade de recursão reside no uso de instruções limitadas para definir um conjunto infinito de objetos.
A estrutura recursiva consiste em duas partes:
- Cabeçalho recursivo:
Quando não chamar seu próprio método. Se você não tiver uma cabeça, entrará em um ciclo de morte.
- Corpo recursivo: quando você precisa chamar seu próprio método.
package com.xin.method;
public class Demo06 {
//2!=2*1
//3!=3*2*1
//5!=%*4*3*2*1 阶乘
public static void main(String[] args) {
System.out.println(f(5));
}
//1!=1
//2 2*f(1)
//3 2*f(2)
public static int f(int n){
if (n==1){
return 1;
}else{
return n*f(n-1); //调用自己
}
}
}
Principal —— → f (5) —— → f (4) —— → f (3) —— → f (2) —— → f (1)
Passe o valor de f (1) para 2—— → f (2) —— → f (3) —— → f (4) —— → f (5) —— → Principal (saída)
Resumo recursivo
Limite de condição de limite
Pré-estágio
Estágio de retorno n * (n-1)
Java pertence ao mecanismo de pilha, portanto, quando a profundidade é relativamente grande, não é adequado para ocupar muito espaço e memória.
Aplicável a situações onde a base é relativamente pequena
Você pode fazer sem recursão sem recursão