Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — IV - UFG 2026

Algoritmos e Estrutura de DadosAlgoritmos
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?
  1. Aíndice ← (superior – inferior + 1) / 2
  2. Bíndice ← (superior + inferior – 1) / 2
  3. Cíndice ← (superior – inferior) / 2
  4. 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

  1. 1Calcular meio
  2. 2Comparar valor
  3. 3Achou? Retorna índice
  4. 4Menor? Ajusta inferior
  5. 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.

Gabarito: letra D.

Link permanente: /questoes/qg730993