Recursividade, Fibonacci e java
- #Java
A sequência de Fibonacci é conhecida como 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, … . Assim, saber implementar o algoritmo na linguagem java web e/ou da plataforma Android pode ser um diferencial na entrevista técnica para desenvolvedores.
Diante desse cenário, outro conceito que é necessário é a recursividade. Assim, a memória do dispositivo pode ser otimizada.
Além disso, a linguagem java conta com o ferramental da JetBrains IntelliJ Community.
Para finalizar, portanto, a recursividade é muito utilizada em análise e desenvolvimento de sistemas. Afinal, vivemos a Era da Informação.
ChatGPT
Aqui está um exemplo de uma implementação em Java do teste para medir o desempenho do algoritmo de Fibonacci:
import org.junit.Test;
public class FibonacciTest {
@Test
public void testFibonacciPerformance() {
int n = 40;
long startTime = System.nanoTime();
long result = fibonacci(n);
long endTime = System.nanoTime();
System.out.println("Fibonacci of " + n + ": " + result);
System.out.println("Time taken: " + (endTime - startTime) + " ns");
}
public static long fibonacci(int n) {
if (n <= 1) return n;
else return fibonacci(n-1) + fibonacci(n-2);
}
}
Este teste calcula o número de Fibonacci de 40 e mede o tempo que leva para fazê-lo, em nanosegundos. A função fibonacci é uma implementação recursiva do algoritmo de Fibonacci. A função System.nanoTime() é usada para medir o tempo de execução do bloco de código passado como argumento.
Assim como as outras linguagens, essa implementação recursiva é ineficiente para valores grandes de n, para solucionar essa questão é recomendado o uso de programação dinâmica ou exponenciação de matrizes.