Recursão Java: métodos recursivos (com exemplos)

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 de mundo físico seria colocar dois espelhos paralelos voltados um para o outro. Qualquer objeto entre eles seria refletido recursivamente.

Como funciona a recursão?

Trabalho de recursão Java

No exemplo acima, chamamos o recurse()método de dentro do mainmé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); ) )

Produto :

 4 fatorial = 24

No exemplo acima, temos um método chamado factorial(). O factorial()é chamado a partir do main()método. com a variável numérica passada como argumento.

Aqui, observe a declaração,

 return n * factorial(n-1);

O factorial()método está chamando a si mesmo. Inicialmente, o valor de n é 4 dentro factorial(). Durante a próxima chamada recursiva, 3 é passado para o factorial()método. Este processo continua até que n seja igual a 0.

Quando n é igual a 0, a ifinstrução retorna falso, portanto, 1 é retornado. Por fim, o resultado acumulado é passado para o main()método.

Programa de Trabalho Fatorial

A imagem abaixo lhe dará uma idéia melhor de como o programa fatorial é executado usando recursão.

Programa fatorial 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?

Artigos interessantes...