Recursão em Java
Aprenderemos a recursão Java com exemplos neste post para que possamos atender às suas necessidades educacionais.
Recursão Java
Java recursão é a técnica de fazer uma chamada de função em si.
O objetivo dessa técnica é simplificar problemas complexos em outros mais simples que possam ser resolvidos facilmente.
Em alguns casos, você pode achar a recursão difícil de entender.
A experimentação é a chave para descobrir como funciona.
Exemplo de Recursão Java
Dois números são fáceis de multiplicar, mas multiplicar um intervalo de números é mais desafiador.
Quando se trata de recursão Java, a multiplicação de um intervalo de números é realizada dividindo-a na simples tarefa de multiplicar dois números.
O exemplo a seguir mostra como multiplicar todos os 10 números naturais a partir de 1, também conhecido como fatorial de 10:
Example:
Exemplo de Explicação:
Usando o método fatorial_of_ten_numbers() , o parâmetro ample é multiplicado pelo produto de todos os números menores que ample e o resultado é retornado como mrx. Quando amplo se torna 1, a função retorna 1. Durante a execução, o programa executa as seguintes etapas:
10 * factorial_of_ten_numbers(9)
10 * ( 9 * factorial_of_ten_numbers(8) )
10 * ( 9 * ( 8 * factorial_of_ten_numbers(7) ) )
…
10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1
Quando amplo é 1, a função não chama a si mesma, então o programa para aí e retorna o resultado.
O exemplo a seguir mostra como somar todos os 15 números naturais a partir de 1:
Example:
Exemplo de Explicação:
Usando o método sum_of_15_numbers() , o parâmetro ample é adicionado à soma de todos os números menores que ample e o resultado é retornado como mrx. Quando amplo se torna 1, a função retorna 1. Durante a execução, o programa executa as seguintes etapas:
15 + sum_of_15_numbers(14)
15 + ( 14 + sum_of_15_numbers(13) )
15 + ( 14 + ( 13 + sum_of_15_numbers(12) ) )
…
15 + 14 + 13 + 12 + 11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1
Quando amplo é 1, a função não chama a si mesma, então o programa para aí e retorna o resultado.
Condição de Parada
A recursão infinita é um problema associado às funções recursivas, assim como o loop infinito é um problema associado aos loops.
Quando uma função chama a si mesma infinitamente, ela é considerada recursão infinita.
As funções recursivas devem ter condições de parada onde possam parar de chamar a si mesmas. Uma condição de parada no exemplo anterior ocorre quando k se torna 1.
O conceito pode ser melhor compreendido vendo uma variedade de exemplos diferentes . Conforme mostrado no exemplo, a função multiplica um intervalo de números entre um início e um fim. End não deve ser maior que start para interromper esta função recursiva.
Usando o exemplo abaixo, você pode usar a recursão para números de produto entre 3 e 8:
Example:
Abaixo está um exemplo de como a recursão pode ser usada para somar números entre 4 e 9:
Example:
Recursão: Vantagens e Desvantagens
- Chamadas recursivas alocam novos locais de armazenamento na pilha para variáveis.
- Cada vez que uma chamada recursiva retorna, as variáveis e parâmetros antigos são removidos da pilha. Como resultado, a recursão geralmente consome mais memória e é mais lenta.
- Em contraste, as soluções recursivas são muito mais simples de escrever, depurar e manter.
O conceito Java Recursion agora foi explicado para você, então você sabe como tirar proveito dele.