Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Criando uma binarySearch

Eu to fazendo um projeto que tem uma progressão geométrica, e eu quero descobrir usando binary search entre quais "n" da minha PG um certo numero esta.

Vou dar um exemplo do jeito normal:

        int numero = 2562;
        int nmax = 100;
        double q = 1.5; //q = razao da pg
        int start = 10; //inicio da pg

        int nloc = 0;

        for(int n = 1; n <= nmax; n++) {
            Long an = (long)(start * Math.pow(q, n));
            Long annext = (long)(start * Math.pow(q, n+1));
            if(numero > an && numero < annext) {
                nloc = n;
                break;
            }
        }
//no final nloc = 13

Esse é o código por sequencia, queria transformar isso em binary search, como poderia fazer?

2 respostas
solução!

Opa Gabriel,

Você já viu as aulas sobre busca binária do nosso segundo curso sobre algoritmos: https://cursos.alura.com.br/course/projetos-de-algoritmos-2 ?

Sugiro que você tente implementar o algoritmo sozinho e se tiver dificuldade postar o código aqui para a gente te ajudar.

Além disso, será que seu código funciona quando q < 1 ?

Eu to tentando fazer ele funcionar de uma forma diferente porque eu quero usar números menores que 1 como vc disse. to tentando desenvolver uma formula para isso, mas ta bem dificil.

Vou dar uma olhada nas aulas de algoritmos, Obrigado!