0

Recursividade

Renan Vale
Renan Vale

Criei este artigo com base no módulo 01 - Recursividade / Tail Call / Memoization do curso de Desenvolvimento Avançado em Java. A cada módulo que finalizar irei criar um artigo como este, Sou iniciante e pretendo passar aqui minhas anotações e o que aprendi, espero que gostem.


Recursividade

Na recursividade, uma função chama a si mesma repetidamente até atingir uma condição de parada. No caso de Java, um método chama a si mesmo, passando para si os objetos primitivos. Cada Chamada gera uma nova entrada de pilha de execusão.

Facilitando que evitemos estados mutáveis e mantenhamos nosso programa mais declarativo e menos imperativo.


Tail Call (recursividade em cauda)

É uma recursão onde não há nenhuma linha de código após a chamada do próprio método, e sendo assim, não há nenhum tipo de processamento a ser feito após a chamada recursiva.

  • Pega do final para o início
  • Economiza processamento
  • Java não suporta o Tail Call
  • JVM não suporta a recursão em calda, ele lança um estouro de pilha.


Memoization

É uma técnica de otimização que consiste no cache do resultado de uma função, baseado nos parâmetros de entrada. Com isso, nas seguintes execuções conseguimos ter uma resposta mais rápida.

0
0

Comentários (0)

Começando com desenvolvimento FullStack

Brasil