Estou fazendo uns trabalhos pra faculdade testando algumas funções recursivas e iterativas, segue a função que criei:
public static void buscaRecursiva(ArrayList<Integer> num, int tamanho, int numero){
if(num.get(tamanho)==numero){
iguaisRecursivo = iguaisRecursivo+1;
}
if(tamanho > 0){
buscaRecursiva(num, tamanho -1, numero);
}
else{
System.out.println("O numero "+ numero +" aparece "+iguaisRecursivo+" vez(es) na busca recursiva!!");
}
}
como podem ver, ela busca em um Array List e imprime na tela se e quantas vezes o numero fornecido pelo usuário é encontrado,
no entanto, quando passo um Array muito grande(100.000 elementos por exemplo) ele me retorna o seguinte erro :
[color=red]“Exception in thread “main” java.lang.StackOverflowError
at br.funcesi.PAA.Principal.buscaRecursiva(Principal.java:33)
at br.funcesi.PAA.Principal.buscaRecursiva(Principal.java:37)
at br.funcesi.PAA.Principal.buscaRecursiva(Principal.java:37)
at br.funcesi.PAA.Principal.buscaRecursiva(Principal.java:37)
at br.funcesi.PAA.Principal.buscaRecursiva(Principal.java:37)”[/color]
entretanto, quando passo um de 1.000 elementos ele funfa de boassa…e quando faço o mesmo tipo de pesquisa com uma função iterativa
também rola de boa!! Alguém sabe me dizer o que está causando esse erro?? Acho que pode ser algo relacionado com memória…será que é??