Questão de Algoritmos e Estrutura de Dados — Algoritmos — IV - UFG 2026
Algoritmos e Estrutura de Dados›Algoritmos
Código
qg730993
Banca
IV - UFG
Órgão
Câmara de Goiânia - GO
Ano
2026
Nível
Superior
Cargo
Analista de Sistemas
Considere o seguinte algoritmo que tem como objetivo pesquisar um dado valor em um vetor usando o método de busca binária.função buscaBinaria(vetor [], valor)inferior ← 0superior ← N - 1enquanto inferior <= superior{comando faltantese vetor[índice] == valorretornar índicesenãose vetor[índice] < valorinferior ← índice + 1senãosuperior ← índice - 1}retornar -1O algoritmo trabalha com valores do tipo inteiro e o vetor tem N elementos ordenados de forma crescente, com o índice do primeiro elemento sendo zero. O algoritmo retorna o valor do índice do vetor que contém o valor pesquisado, ou retorna -1, se o valor não for encontrado no vetor. Qual linha deve substituir o comando faltante no algoritmo para que ele implemente corretamente a busca binária?
Aíndice ← (superior – inferior + 1) / 2
Bíndice ← (superior + inferior – 1) / 2
Cíndice ← (superior – inferior) / 2
Díndice ← (superior + inferior) / 2
Revelar gabarito e comentário▾
GabaritoD — índice ← (superior + inferior) / 2
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Busca binária – cálculo do índice do meio
Gabarito: letra D. A busca binária divide o intervalo de busca ao meio calculando o índice médio como (inferior + superior) / 2 (usando divisão inteira). Esse valor é o ponto médio (arredondado para baixo) entre os limites inferior e superior. A alternativa D reproduz exatamente essa fórmula. As demais alternativas alteram a operação (subtração em vez de soma) ou incluem deslocamentos indevidos (±1), o que comprometeria o funcionamento correto do algoritmo.
A busca binária é um algoritmo de divisão e conquista que opera sobre um vetor ordenado. A cada iteração, o espaço de busca é reduzido pela metade, comparando o valor procurado com o elemento do meio do intervalo. O cálculo correto do índice do meio é essencial para o algoritmo funcionar.
Alternativa
Fórmula do índice
Funcionamento correto?
Exemplo (inferior=2, superior=8)
Motivo do erro/acerto
A
(superior – inferior + 1) / 2
❌ Não
Resultado = 3 (deslocamento a partir de 0, não índice absoluto)
Calcula metade do comprimento do intervalo, não a posição absoluta do meio
B
(superior + inferior – 1) / 2
❌ Não
Resultado = 4 (deveria ser 5)
Subtração de 1 desloca o índice para a esquerda, quebrando a simetria
C
(superior – inferior) / 2
❌ Não
Resultado = 3 (deslocamento a partir de inferior)
Dá apenas o deslocamento, não o índice global; funciona só quando inferior=0
D
(superior + inferior) / 2
✅ Sim
Resultado = 5 (ponto médio absoluto)
Fórmula clássica da busca binária: soma dos limites e divisão inteira
1Calcular meio
2Comparar valor
3Achou? Retorna índice
4Menor? Ajusta inferior
5Maior? Ajusta superior
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
índice ← (superior – inferior + 1) / 2
Esta fórmula calcula metade do comprimento do intervalo (com +1 para incluir ambos os limites) e não a posição absoluta do meio. Por exemplo, se inferior=0 e superior=9, o resultado seria (9–0+1)/2 = 5, que é o meio do subvetor de 10 elementos, mas a fórmula correta para o índice absoluto seria (0+9)/2 = 4 (divisão inteira). Essa fórmula levaria a um deslocamento para a direita.
Alternativa B — ❌ Incorreta
índice ← (superior + inferior – 1) / 2
Ao subtrair 1, o índice médio fica deslocado para a esquerda. Exemplo: inferior=0, superior=9 → (0+9–1)/2 = 4; nesse caso dá o mesmo que a fórmula correta, mas em intervalos que começam em um valor diferente de zero o erro aparece. Por exemplo, inferior=5, superior=9 → (5+9–1)/2 = 6,5 → arredondado 6 (divisão inteira), enquanto o correto (5+9)/2 = 7. A subtração de 1 não é necessária e quebra a simetria.
Alternativa C — ❌ Incorreta
índice ← (superior – inferior) / 2
Essa expressão dá apenas o deslocamento a partir de inferior, não o índice global. Ex.: inferior=2, superior=8 → (8–2)/2 = 3; isso indicaria o terceiro elemento a partir de inferior (índice 5), quando o meio absoluto deveria ser (2+8)/2 = 5. O índice calculado está correto apenas quando inferior=0, mas falha em todos os outros casos.
Alternativa D — ✅ Correta ⟵ GABARITO
índice ← (superior + inferior) / 2
Esta é a fórmula padrão da busca binária. Ela retorna o índice médio entre os dois limites (arredondado para baixo, caso a soma seja ímpar — em muitas linguagens a divisão inteira já faz isso). O algoritmo então compara o elemento nessa posição com o valor buscado e ajusta os limites de acordo. A fórmula é amplamente utilizada e está presente na descrição clássica do algoritmo (veja o conteúdo de apoio: "Defina m (o índice do meio da lista) para (L+R)/2 arredondado"). Logo, é a substituição correta para o comando faltante.
NÃO CAIA NESSA!
A banca troca a soma pela subtração ou insere ajustes de ±1, fazendo o candidato confundir o índice absoluto com o tamanho do subvetor. A fórmula correta é simples: a média aritmética dos limites (soma deles dividida por 2). Lembre-se: o índice do meio no vetor original é a média entre inferior e superior, não o meio do intervalo de busca relativo.