memoização
Memoização é uma técnica de otimização utilizada em ciência da computação para evitar recomputações de resultados já obtidos. Consiste em armazenar o resultado de uma função para cada conjunto de argumentos de entrada e, quando a função é chamada novamente com os mesmos parâmetros, retornar o valor previamente computado em vez de recalculá-lo.
É particularmente comum em algoritmos recursivos e visa reduzir a complexidade de tempo, às custas de maior
Implementação típica: manter um mapa (dicionário) que mapeia as entradas para os resultados. Em funções puras,
Vantagens e limitações: ganho de desempenho quando há sobreposição de chamadas; desvantagens incluem consumo de memória,
Exemplos de uso: cálculo de sequências como Fibonacci, algoritmos de contagem com subproblemas repetidos, ou operações