BuscaSequencialRecursiva

1 resposta
programaçãojava
D

alguém pode me ajudar, preciso fazer uma buscasequencial recursiva
public class Ordenacaoo{

public static int  buscaSequencial(int num, int vet[]){

for(int i=0; i<vet.length;i++){

if(num==vet[i]){

return i;

}
}
   return -2 ;

}

public static int buscaSequencialRecursiva(int num, int vet[], int pos){

for(int i=0 ; i<vet.length;i++){
  if(num!=vet[i])
     return -1;
}
  for(int i =0; i<vet.length;i++ ){
     if(vet[i]==num){
        return buscaSequencialRecursiva(num, vet, pos++ );
     }
  }

return vet[pos];
}

public static void main (String[]args){

int vet[]={10,20,64,57,21};

System.out.println(buscaSequencialRecursiva(20,vet));

}

}

1 Resposta

H

Se você tem um vetor e quer percorrer suas posições para achar o número usando recursão, ela iria funcionar como um for, tendo uma condição de parada, uma incrementação para chegar na condição de parada.
A sua recursão eu sinceramente não entendi. Você tem vários for que eu não entendo o que faz. Se na recursão você quiser mostrar o número que esta procurando ou a posição do número dentro do vetor.
Ficaria mais ou menos assim:

public static int buscaSequencialRecursiva(int num, int vet[], int pos){
        if(vet[pos]==num){ /*Verifica se achou o número, se sim retorna ele, se quiser saber a posição que estava dentro do vetor, é só fazer um return pos;*/
               return vet[pos];
        }
        else if(vet.lenght==pos){ /*Verifica se chegou ao fim do vetor, se tiver retorna -1 como forma de dizer que não achou*/
        return -1;
        }
        else{//Incrementa a posição para continuar procurando o número
        return buscaSequencialRecursiva(num, vet, pos++ );
        }
}

Você tem que mudar para:
System.out.println(buscaSequencialRecursiva(20,vet,0));

Criado 16 de abril de 2018
Ultima resposta 16 de abr. de 2018
Respostas 1
Participantes 2