Recursão Java
Recursão Java
Neste tutorial, você aprenderá sobre a função recursiva Java, suas vantagens e desvantagens.
Em Java, um método que chama a si mesmo é conhecido como método recursivo. E, esse processo é conhecido como recursão.
Um exemplo do mundo físico seria colocar dois espelhos paralelos um de frente para o outro. Qualquer objeto entre eles seria refletido recursivamente.
Como funciona a recursão?
No exemplo acima, chamamos o
recurse()
método de dentro do main
método. (chamada de método normal). E, dentro do método recurse(), estamos novamente chamando o mesmo método recurse. Esta é uma chamada recursiva. Para interromper a chamada recursiva, precisamos fornecer algumas condições dentro do método. Caso contrário, o método será chamado infinitamente.
Portanto, usamos a instrução if...else (ou abordagem semelhante) para encerrar a chamada recursiva dentro do método.
Exemplo:fatorial de um número usando recursão
class Factorial {
static int factorial( int n ) {
if (n != 0) // termination condition
return n * factorial(n-1); // recursive call
else
return 1;
}
public static void main(String[] args) {
int number = 4, result;
result = factorial(number);
System.out.println(number + " factorial = " + result);
}
}
Saída :
4 factorial = 24
No exemplo acima, temos um método chamado
factorial()
. O factorial()
é chamado do main()
método. com o número variável passada como argumento. Aqui, observe a afirmação,
return n * factorial(n-1);
O
factorial()
método está chamando a si mesmo. Inicialmente, o valor de n é 4 dentro de factorial()
. Durante a próxima chamada recursiva, 3 é passado para o factorial()
método. Este processo continua até n é igual a 0. Quando n for igual a 0, o
if
declaração retorna false, portanto, 1 é retornado. Finalmente, o resultado acumulado é passado para o main()
método. Trabalho do Programa Fatorial
A imagem abaixo lhe dará uma ideia melhor de como o programa fatorial é executado usando recursão.
Vantagens e desvantagens da recursão
Quando uma chamada recursiva é feita, novos locais de armazenamento para variáveis são alocados na pilha. À medida que cada chamada recursiva retorna, as variáveis e parâmetros antigos são removidos da pilha. Portanto, a recursão geralmente usa mais memória e geralmente é lenta.
Por outro lado, uma solução recursiva é muito mais simples e leva menos tempo para escrever, depurar e manter.
Leitura recomendada:Quais são as vantagens e desvantagens da recursão?
Java
- Operadores Java
- Interface Java
- Java try-with-resources
- Anotações Java
- Tipos de anotação Java
- Método String Length () em Java:como encontrar com exemplo
- Método Java String charAt() com exemplo
- Java String EndsWith() Método com Exemplo
- Java String replace(), replaceAll() e método replaceFirst()
- Como reverter uma string em Java usando recursão