1
resposta

tem alguns valores que ele retorna -1 no console

tem alguma inconsistência nesse codigo?

const listaLivros = require("./arrays");

function busca(array, de, ate, valorBuscado){
    
    const meio = Math.floor((de+ate) / 2);
    const atual = array[meio];
    
    if(de > ate){
        return-1
    }

    if(valorBuscado === atual.preco){
        return meio
    }

    if(valorBuscado < atual.preco){
        return busca(array,de,meio -1, valorBuscado)
    } 

    if(valorBuscado > atual.preco){
        return busca(array,meio + 1 ,array.length-1, valorBuscado)
    }
    
}

console.log(busca(listaLivros, 0, listaLivros.length - 1, 40))
1 resposta

Olá, Eric! Como vai?

No seu código, o retorno de -1 não é uma inconsistência, mas sim uma condição de parada da recursão. Ele é retornado quando o valor buscado não é encontrado no array. Isso acontece quando o valor de 'de' se torna maior que o valor de 'ate', ou seja, quando o intervalo de busca se torna inválido.

Por exemplo, se você está procurando o valor 40 na lista de livros e esse valor não existe, a função busca continuará a dividir o array até que o valor de 'de' seja maior que 'ate'. Nesse momento, a função retorna -1, indicando que o valor buscado não foi encontrado.

Portanto, o retorno de -1 é um comportamento esperado do seu código quando o valor buscado não é encontrado no array.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.