A complexidade do algoritmo de busca binária numa lista ord...
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