Busca em vetor não ordenado usando for

1 resposta
java
M

Estamos interessados em saber se um dado elemento x e um dos elementos de um vetor V de dimensão n e, caso seja, também queremos saber a posição onde este elemento se encontra.

Implemente um algoritmo que faça uma busca exaustiva em todo o vetor usando o “for” como estrutura de repetição, ou seja, sempre acha o elemento x em V, se ele estiver presente, pois ele varre todo o vetor comparando cada elemento com x. Caso x esteja presente duas vezes ou mais, ele retorna a posição da ultima ocorrência. Neste caso, o algoritmo sempre faz n comparações, por causa do comando for. Por isto diz-se que o número de comparações que o algoritmo realiza é proporcional ao tamanho do vetor.

O programa deve ler a dimensão do vetor (1 ≤ n ≤ 500) e, depois ler os n valores (-1000 ≤ V[i] ≤ 1000) e armazenar no vetor V. Em seguida, ler um valor indeterminado de valores (-1001 ≤ x ≤ 1000) e procurar no vetor V. Caso o valor de x for encontrando no vetor V deve ser impresso o valor SIM e a posição no vetor, NAO caso contrário. O último valor, que não deverá entrar no cálculo, deve ter o valor -1001. Considere que o primeiro índice do vetor começa em um.

1 Resposta

M

import java.util.Scanner;

class main{

public static void main(String[] args){

Scanner leia = new Scanner(<a href="http://System.in">System.in</a>);

int k;

int n = leia.nextInt();

int vet[] = new int[n];

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

vet[i] = leia.nextInt();

}

k = leia.nextInt();

while(k != -1001){

int indice, i;

boolean clear;

indice = 0;

i = 0;

clear = true;
for(i = 0; i < n; i++){
			if(vet[i] == k){
				clear = false;
				indice = i + 1;
			}
			i++;
		}
		if(indice > 0){
			System.out.println("SIM "+indice);
		}
		else{
			System.out.println("NAO");
		}
		k = leia.nextInt();
	}
}

}
//fiz esse code, mas não ta funcionando

Criado 1 de outubro de 2018
Ultima resposta 1 de out. de 2018
Respostas 1
Participantes 1