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.