nelo_inc
Power Member
Boas pessoal... preciso de uma ajuda para melhorar este algoritmo da acordo com a pergunta seguinte...
Altere o algoritmo de pesquisa binária de modo a que a pesquisa retorne a 1ª ocorrência do
elemento a procurar. O método deve retornar a primeira posição do elemento ou -1 caso não esteja presente.
A assinatura do método deverá ser:
onde: v é o vector de elementos onde estão armazenados os elementos
x é o elemento a procurar
agradecia se pudessem que me dessem uma resposta com urgencia...
fikem bem
Altere o algoritmo de pesquisa binária de modo a que a pesquisa retorne a 1ª ocorrência do
elemento a procurar. O método deve retornar a primeira posição do elemento ou -1 caso não esteja presente.
A assinatura do método deverá ser:
Código:
public static int procuraBinariaPrimPosicao( Object v[], Object x )
onde: v é o vector de elementos onde estão armazenados os elementos
x é o elemento a procurar
Código:
public static int procuraBinariaPrimPosicao( String v[], String x ){
int esq = 0;
int dir = v.length - 1;
int meio;
while ( esq <= dir ) {
meio = (esq + dir) / 2;
System.out.println("teste--->"+v[meio]);
int cmp = ( v[meio]).compareTo(x);
if ( cmp < 0 )
esq = meio + 1;
else if( cmp > 0 )
dir = meio - 1;
else return cmp;
}
return -1;
}
public static void main(String[] args) {
Dicionario dic = new Dicionario();
long antes = System.currentTimeMillis();
String [] dicionario = dic.getDicionario();
for(int j = 0;j<dicionario.length;j++)
//System.out.println(dicionario[j]);
Arrays.sort(dicionario);
//procuraBinariaPrimPosicao(dicionario,"curral");
if(procuraBinariaPrimPosicao(dicionario,"zulu")==0)
System.out.println("Encontrei");
else
System.out.println("Nao Encontrei");
long depois = System.currentTimeMillis();
System.out.println("Demorou "+(depois-antes)+" milisegundos");
}
}
fikem bem
Última edição pelo moderador: