Geral Múltipla Escolha

O array names[0], names[1], ..., names[9999] é uma lista de 10000 nomes (strings). Pretende-se pesquisar a lista para determinar a localização de um dado nome X nessa lista. Qual das seguintes pré-condições deve ser imposta a uma pesquisa binária?

O array names[0], names[1], ..., names[9999] é uma lista de 10000 nomes (strings). Pretende-se pesquisar a lista para determinar a localização de um dado nome X nessa lista. Qual das seguintes pré-condições deve ser imposta a uma pesquisa binária?

  1. Não existem nomes duplicados na lista
  2. O número de nomes na lista, N, é grande
  3. A lista está em ordem alfabética
  4. O nome X não está definitivamente na lista
  5. O nome X está próximo do meio da lista

Resolução completa

Explicação passo a passo

C
Alternativa C

Alternativa C - A lista está em ordem alfabética

Introdução

A questão aborda um conceito fundamental de estruturas de dados e algoritmos: a Pesquisa Binária (ou Binary Search). Para utilizar esse algoritmo eficientemente, é necessário entender suas limitações e requisitos estruturais.

Desenvolvimento

A Pesquisa Binária é um algoritmo de busca que funciona dividindo repetidamente o intervalo de busca pela metade. Ela compara o valor procurado (X) com o elemento central da lista.

Para que essa estratégia funcione, existe um pré-requisito inegociável: a lista deve estar ordenada.

Se a lista não estiver ordenada, o algoritmo não consegue decidir se deve continuar a busca na metade superior ou inferior da lista com base na comparação X vs. Elemento Central.

No contexto da questão, os dados são strings (nomes), logo, a ordem necessária é a ordem alfabética (lexicográfica).

Por que esta é a resposta correta?

  • A lógica da pesquisa binária depende diretamente da propriedade de ordenação para eliminar 50% das possibilidades a cada iteração.
  • Sem essa ordenação, teríamos que recorrer a uma Pesquisa Sequencial, que verifica elemento por elemento.

Análise das demais alternativas

  • a. Não existem nomes duplicados: Incorreto. A pesquisa binária pode encontrar um elemento mesmo que haja duplicatas, embora possa exigir adaptações para listar todas as posições.
  • b. O número de nomes na lista, N, é grande: Incorreto. Embora a eficiência seja maior em listas grandes, o algoritmo não exige um tamanho mínimo específico para funcionar.
  • d. O nome X não está definitivamente na lista: Incorreto. Essa afirmação contradiz o objetivo de "determinar a localização" do nome.
  • e. O nome X está próximo do meio da lista: Incorreto. A posição inicial do alvo não influencia a estrutura da lista nem a viabilidade do algoritmo.

Conclusão

A única condição necessária para aplicar a pesquisa binária em uma lista de strings é que ela esteja previamente organizada. Portanto, a alternativa C é a correta.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Geral

Ver mais Geral resolvidas

Tem outra questão de Geral?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.