Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — FGV 2022

Algoritmos e Estrutura de DadosAlgoritmos
Código
fg049449
Banca
FGV
Órgão
PC-AM
Ano
2022
Nível
Superior
Cargo
Perito Criminal - 4ª Classe - Processamento de Dados
A complexidade do algoritmo de busca binária numa lista ordenada, com N elementos, é
  1. AO (log N)
  2. BO (N log N)
  3. CO (N)
  4. DO (N/2)
  5. EO (N² )
Revelar gabarito e comentário

GabaritoA — O (log N)

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”.

Complexidade da Busca Binária

Gabarito: letra A. A busca binária divide repetidamente o espaço de busca pela metade, resultando em complexidade O(log N) no pior caso. Isso porque, a cada iteração, descarta-se metade dos elementos restantes, e o número de iterações necessárias para encontrar um elemento (ou concluir que não existe) é aproximadamente log₂(N). Esse é um resultado clássico da análise de algoritmos, estudado em qualquer curso introdutório de estruturas de dados.

A busca binária em detalhes

O algoritmo funciona apenas em listas ordenadas. Seu princípio é comparar o elemento buscado com o elemento do meio da lista:

  • Se igual, retorna a posição.

  • Se menor, busca-se na metade esquerda.

  • Se maior, busca-se na metade direita.

Esse processo se repete até que a lista seja reduzida a zero elementos ou o elemento seja encontrado. O número de comparações no pior caso é o número de vezes que podemos dividir N por 2 até chegar a 1, ou seja, ⌈log₂(N)⌉.


  1. 1Compara com elemento do meio
  2. 2Igual? Retorna posição
  3. 3Menor? Busca na metade esquerda
  4. 4Maior? Busca na metade direita
  5. 5Repete até encontrar ou zerar
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa afirma que a complexidade é O(log N). Isso está correto, pois a cada passo o tamanho do problema é reduzido à metade, levando a uma quantidade de passos proporcional ao logaritmo de N na base 2. A notação O-grande abstrai a base do logaritmo, já que logaritmos em diferentes bases diferem apenas por uma constante multiplicativa.

Alternativa B — ❌ Incorreta

O(N log N) é a complexidade típica de algoritmos de ordenação eficientes, como Merge Sort e Heap Sort. A busca binária não ordena os dados; ela apenas pesquisa em uma lista já ordenada. Portanto, essa alternativa confunde busca com ordenação.

Alternativa C — ❌ Incorreta

O(N) é a complexidade da busca linear (ou sequencial), que percorre todos os elementos um a um. A busca binária é muito mais rápida para listas grandes, justamente por usar a estratégia de divisão e conquista, resultando em complexidade logarítmica.

Alternativa D — ❌ Incorreta

O(N/2) ainda é da ordem linear (O(N)), pois o fator constante 1/2 é irrelevante na análise assintótica. A busca binária realiza muito menos operações: para N=1.000.000, a busca linear faria até 1.000.000 comparações, enquanto a binária faria apenas cerca de 20 (log₂ 10⁶ ≈ 20).

Alternativa E — ❌ Incorreta

O(N²) é uma complexidade quadrática, típica de algoritmos como Bubble Sort, Selection Sort ou certos algoritmos ingênuos. A busca binária é exponencialmente mais eficiente; mesmo para N imenso, o número de operações cresce muito lentamente.


PEGA ESSA DICA!

Para memorizar as complexidades básicas, associe a busca binária a divisão sucessiva por 2. Se a cada passo você divide o problema pela metade, o número de passos é logarítmico. Compare com a busca linear, que é O(N), e com a ordenação eficiente, que é O(N log N). Na prova, se precisar calcular mentalmente, lembre-se de que log₂(1.000) ≈ 10, log₂(1.000.000) ≈ 20, log₂(1.000.000.000) ≈ 30. Isso mostra como O(log N) é extremamente eficiente.

Gabarito: letra A.

Link permanente: /questoes/fg049449