Exercício Fácil: Completando o Algoritmo

Este será um exercício fácil e rápido. O intuito é exercitar suas capacidades de debugar e de completar o algoritmo.

Vamos olhar um código JavaScript que implementa uma função de busca binaria um algoritmo muito rápido para encontrar valores dentro de uma lista ou vetor que esteja em ordem.

Copie o código abaixo para seu editor de texto ou IDE de preferência:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
    <script>
        window.onload = () => {
            let vetor = [];

            for (let i = 0; i < 1000000; i++) {
                vetor[i] = i*2;
            }

            console.log("Esperado 'true'. Retorno: " + buscaBinaria(vetor, 10000));
            console.log("Esperado 'false'. Retorno: " + buscaBinaria(vetor, 10000.5));
            console.log("Esperado 'false'. Retorno: " + buscaBinaria(vetor, 10001));
            console.log("Esperado 'true'. Retorno: " + buscaBinaria(vetor, 123444));
            console.log("Esperado 'false'. Retorno: " + buscaBinaria(vetor, "cinco"));
            console.log("Esperado 'false'. Retorno: " + buscaBinaria(vetor, -1));
            console.log("Esperado 'true'. Retorno: " + buscaBinaria(vetor, 0));
            console.log("Esperado 'true'. Retorno: " + buscaBinaria(vetor, 2000000));
            console.log("Esperado 'false'. Retorno: " + buscaBinaria(vetor, 2000001));
        }


        let buscaBinaria = (umVetor, item) => {
            let prim = 0;
            let ult = umVetor.length - 1;

            while (prim <= ult) {
                // Buscar o indice para o meio da lista
                // meioLista = calculo para o meio da lista


                // Se o item no meio da lista for o que estamos procurando
                // retorna verdadeiro
                if (umVetor[meioLista] == item) {
                    return true;
                }
                else {
                    // Se o item for menor que o valor procurado
                        // Atribui a variavel 'ult' o valor do meioLista menos 1
                    // Senão (maior que meio da lista)
                        // atribui a variavel 'prim' o valor do meioLista mais 1
                }
            }
            return false;
        }


    </script>
</body>

</html>

Nas sessões com comentadas com uma explicação do que é necessário, utilize seus conhecimentos de JavaScript para completar o código de forma que as exibições de console tenham os valores batendo com o esperado.

Caso você tenha alguma duvida, poste uma pergunta aqui no site para que possamos te ajudar a resolver o problema.

Deixe um comentário