Seja n o tamanho da entrada de um algoritmo para um problema...

Próximas questões
Com base no mesmo assunto
Q47404 Algoritmos e Estrutura de Dados
Seja n o tamanho da entrada de um algoritmo para um problema P. Cada alternativa, que corresponde a um algoritmo distinto, apresenta o número de operações necessárias para resolver P. Considerando-se a análise assintótica (Big O notation), qual algoritmo possui menor complexidade?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: Alternativa A

A questão aborda a análise assintótica, também conhecida como notação Big O. Esse conceito é fundamental para entender a eficiência e a escalabilidade de algoritmos. A notação Big O descreve o comportamento do tempo de execução ou uso de espaço de um algoritmo em termos do tamanho da entrada n.

Vamos analisar cada alternativa para determinar qual possui a menor complexidade.

Alternativa A: 2 + 10log(n)

Primeiramente, identificamos que o termo dominante aqui é log(n). Na análise assintótica, constantes são desprezadas, então a complexidade é O(log n). Esta é uma complexidade eficiente, comum em algoritmos de busca binária.

Alternativa B:

Imagem 017.jpg

Como a imagem não está visível, não podemos analisá-la adequadamente. Passamos para a próxima alternativa.

Alternativa C:

Imagem 018.jpg

Novamente, a imagem não está visível. Vamos seguir para a próxima opção.

Alternativa D: 5n + 128

Aqui, o termo dominante é n. Desprezando as constantes, a complexidade é O(n). Embora linear, esta complexidade é maior que O(log n).

Alternativa E:

Imagem 019.jpg

Mais uma vez, a imagem não está visível, impossibilitando a análise.

Conclusão:

Entre as alternativas visíveis, a Alternativa A possui a menor complexidade assintótica, O(log n), que é mais eficiente comparada a O(n) da Alternativa D.

Espero que esta explicação tenha ajudado você a entender melhor a análise assintótica e como determinar a complexidade de diferentes algoritmos. Se precisar de mais alguma ajuda, estarei por aqui!

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

A ordem de cima ai esta errada. O correto é:

O(1) -> O(logn) -> O (n) -> O (nlog n) -> O(n^2) -> O (n^3) -> O (2^n ) -> O (n!)
Lembrando que:
  • O(2 + 10log n) = O(log n)
  • O(3n2+n) = O(n2)
  • O(1000+2n3) = O(n3)
  • O(5n+128) = O(n)
  • O(4n)
Em ordem crescente de complexidade temos:
  • O(log n) < O(n) < O(n2) < O(n3) < O(4n)
Ilustrando os comentários acima:
Cabe colocar também algumas das principais estruturas de dados/algoritmos de busca quanto à sua complexidade:

Simplificando :

(A) 2 + 10log n - Complexidade logarítmica

(B) 3n2 + n - Complexidade quadrática

(C) 1000 + 2n3 - Complexidade cúbica

(D) 5n + 128 - Complexidade linear

(E) 4n    - Complexidade exponencial

A resposta correta é letra (A), pois dentre as complexidades das alternativas da questão a logarítmica é a menor.
Como informa a tabela do colega acima postada.


Clique para visualizar este comentário

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