Eu tenho o seguinte código de pesquisa sequencial:
public void pesquisarNumero(int x, int [] vetor){
int cont = 0;
for(cont = 0; cont < vetor.length; cont++){
if(vetor[cont] == x){
System.out.println("Encontrou o número : " + x);
break;
}
}
if(cont >= vetor.length)
System.out.println("Não encontrou o número : " + x);
}
O vetor já está ordenado através de um BubbleSort, por isso, como é que eu faço para que a pesquisa não percorra elementos desnecessário do vetor? e apenas procure os elementos que foram pedidos ?
Não entendi a parte de procurar apenas os elementos que foram pedidos, não é exatemante isso que o método deve fazer. Se você quer criar uma instrução que vá direto no dado que você quer procurar, acho que isso vai ser um pouco complicado. Mas o que você pode fazer é otimizar o método de pesquisa. Por exemplo, como o array já está ordenado, você pode comparar o elemento que quer pesquisar com o elemento que está no meio do array. Se ele for menor, você faz a pesquisa somente na primeira metade, se ele for maior, você faz na segunda. Isso pode reduzir muito o tempo de pesquisa. Agora se o array for pequeno, não creio que melhorar esse método vai trazer um ganho significativo de desempenho.