Fazer um método com busca linear inversa

2 respostas Resolvido
eclipsejavajavascriptprogramação
V

Bom dia! Preciso fazer um código de busca linear inversa, que começa das últimas posições vindo até as primeiras, tenho o seguinte código porém ele SEMPRE me retorna -1, alguém sabe como posso resolver isso?

public class Buscali {

public static int buscali (int vet2 [], int elem) {

for (int i=vet2.length; i<= elem; i--) {
	if (vet2[i] == elem) {
	return elem;
	}
}
return -1;
}
public static void main (String args[]) {
	
	int res4;
	int [] vet2 = {1,2,3,4,5,6,7};
	res4 = buscali (vet2, 5);
	System.out.println("O resultado e: " + res4);
	
}

}

2 Respostas

Jelson1
Solucao aceita

O i nessa situação sempre vai ser maior que elem, entao seu loop nunca é executado!

Acredito que seja assim:

public static int buscali (int vet2 [], int elem) {

    for (int indice = (vet2.length-1); indice  >= 0; indice--) {

	    if (vet2[indice] == elem) {
	         return indice;
        }
    }
   return -1;
}
V

Muito obrigada, me ajudou demais!!!

Criado 17 de março de 2020
Ultima resposta 17 de mar. de 2020
Respostas 2
Participantes 2