A complexidade do algoritmo de busca binária numa lista ord...

Próximas questões
Com base no mesmo assunto
Q1902414 Algoritmos e Estrutura de Dados
A complexidade do algoritmo de busca binária numa lista ordenada, com N elementos, é
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Vamos analisar a questão sobre a complexidade do algoritmo de busca binária numa lista ordenada. A alternativa correta é:

Alternativa A - O(log N)

A busca binária é um algoritmo eficiente para encontrar um elemento em uma lista ordenada. Para que funcione, a lista deve estar previamente ordenada. O princípio básico da busca binária é dividir a lista pela metade repetidamente até encontrar o elemento procurado ou determinar que ele não está na lista. Devido a essa natureza de divisão, a complexidade da busca binária é logarítmica, ou seja, O(log N), onde N é o número de elementos na lista.

Vamos entender por que as outras alternativas estão incorretas:

Alternativa B - O(N log N)

Essa complexidade é típica de algoritmos de ordenação eficientes, como o Merge Sort e o Quick Sort. Eles combinam a divisão e a resolução de problemas menores recursivamente, mas não se aplicam à busca binária, que não envolve a necessidade de ordenar os elementos novamente.

Alternativa C - O(N)

Essa é a complexidade da busca linear, onde cada elemento da lista é verificado um a um até encontrar o elemento desejado. Em uma lista de N elementos, no pior caso, todos os elementos são verificados, resultando em uma complexidade linear. Na busca binária, a lista é dividida pela metade a cada passo, tornando-a mais eficiente do que a busca linear.

Alternativa D - O(N/2)

Essa alternativa não reflete corretamente a complexidade da busca binária. Mesmo que pareça ser uma forma simplificada de O(N), as complexidades assintóticas tradicionalmente não consideram constantes multiplicativas (como 1/2), pois não impactam o crescimento da complexidade à medida que N aumenta.

Alternativa E - O(N2)

Essa complexidade é comum em algoritmos de ordenação ineficientes, como o Bubble Sort, onde cada elemento é comparado com todos os outros, resultando em um crescimento quadrático da quantidade de operações. A busca binária, por ser muito mais eficiente, não tem uma complexidade quadrática.

Portanto, reforçando, a complexidade correta da busca binária numa lista ordenada é O(log N). Esse é um exemplo clássico de como um algoritmo pode otimizar significativamente a procura em uma lista, destacando a importância de entender as diferenças entre os diversos tipos de algoritmos de busca.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

O algoritmo de busca binária é uma técnica de busca eficiente para listas ordenadas. Ele divide repetidamente a lista ao meio e verifica se o valor de busca está na metade superior ou inferior da lista, eliminando metade dos elementos em cada iteração.

A complexidade do algoritmo de busca binária é O(log N), onde N é o número de elementos na lista. Isso ocorre porque a lista é dividida ao meio em cada iteração, reduzindo pela metade o número de elementos a serem verificados a cada passo.

Em contrapartida, a busca sequencial em uma lista não ordenada tem uma complexidade de O(N), onde N é o número de elementos na lista. Isso ocorre porque cada elemento da lista precisa ser verificado em sequência até que o valor de busca seja encontrado.

Portanto, a alternativa correta é a letra A - O(log N).

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo