Você sabia que durante o processo de busca de dados em um arranjo linear é possível “cortar caminho” para deixar de vasculhar regiões do vetor que provavelmente não contenham a resposta para a busca? Quando se realiza a busca binária, pode ser muito mais rápido encontrar a posição de um elemento em um arranjo, ou mesmo, dizer se o elemento está ausente no vetor.
OLIVEIRA, Pietro Martins de; LEON, Rogério de. Estrutura de Dados II. Maringá-PR, Unicesumar, 2019.
Observe o pseudocódigo a seguir:
//Função de Busca Binária int BuscaBinaria(int vec[], int arg, int tam){ int menor, maior, meio; menor = 0; maior = tam-1; while (menor <= maior){ meio = (menor + maior)/2; if (arg == vec[meio]){ return(meio); } if(arg < vec[meio]){ maior = meio - 1; } else { menor = meio + 1; } } return(-1); }
Com base no código-fonte apresentado acima, avalie as afirmações a seguir:
I. A fórmula para identificar a posição do meio do arranjo está incorreta no corpo da função BuscaBinaria() acima. II. Em caso de elemento ausente, este algoritmo irá retornar o valor inteiro -1. III. Este algoritmo poderia ser implementado de forma recursiva.
Lista de comentários
Resposta:
Alternativa 4) II e III, apenas
Explicação: