Questão nº 55

Questão de Análise de Sistemas · CESGRANRIO BNDES 01/2024 (nº 55)

CESGRANRIO2024Analista - Análise de Sistemas (Desenvolvimento)Análise de Sistemas
Gabarito: Dver comentário ↓

Considere os seguintes algoritmos, todos com complexidade assintótica O(n):

Algoritmo 1: executa uma iteração simples sobre uma lista de tamanho n.
Algoritmo 2: executa duas iterações simples sobre uma lista de tamanho n, uma após a outra.
Algoritmo 3: executa uma iteração simples sobre uma lista de tamanho n, mas a iteração interna realiza uma operação constante que leva `t_C` tempo.
Algoritmo 4: executa uma iteração sobre uma lista de tamanho n e, dentro dessa iteração, realiza uma operação constante k vezes, em que o tempo total das operações é `k t_D e(k t_D > t_C)`.
Algoritmo 5: executa uma iteração simples sobre uma lista de tamanho n, mas a iteração interna realiza uma operação com complexidade O(1).

Qual dos algoritmos é menos eficiente em termos de tempo de execução, embora todos tenham a mesma complexidade assintótica O(n)?

Resposta comentada

Gabarito Alternativa D

Conceito-chave: Complexidade assintótica O(n)O(n) descreve como o tempo cresce com o tamanho da entrada, mas ignora constantes multiplicativas e custos fixos por operação. Dois algoritmos O(n)O(n) podem ter tempos reais muito diferentes: um com operação interna cara (ktDk \cdot t_D) demora mais que um com operação barata (tCt_C), mesmo ambos sendo lineares.

  • (A) Incorreta: Algoritmo 1 é o mais simples possível: uma única operação O(1)O(1) por elemento, sendo o menos custoso entre os listados.
  • (B) Incorreta: Algoritmo 2 faz duas iterações separadas, mas cada uma com operação O(1)O(1); o tempo total é 2nc2 \cdot n \cdot c, ainda pequeno comparado aos que têm operações internas caras.
  • (C) Incorreta: Algoritmo 3 tem operação interna de custo fixo tCt_C; como tCt_C é menor que ktDk \cdot t_D, ele é mais rápido que o Algoritmo 4.
  • (D) Correta: Algoritmo 4 tem operação interna com custo ktDk \cdot t_D, onde ktD>tCk \cdot t_D > t_C. Como esse custo se repete nn vezes, o tempo real é nktDn \cdot k \cdot t_D, que é maior que ntCn \cdot t_C (Algoritmo 3) e que 2nc2n \cdot c (Algoritmo 2). A pegadinha: a banca quer que você perceba que O(n)O(n) não significa "mesmo tempo" — apenas "mesma taxa de crescimento". O Algoritmo 4 tem a mesma classe assintótica, mas a maior constante, tornando-o o menos eficiente na prática.
  • (E) Incorreta: Algoritmo 5 é idêntico ao Algoritmo 1 em essência: operação O(1)O(1) por elemento, sem custo extra relevante.

Fonte: CESGRANRIO BNDES 01/2024 Analista - Análise de Sistemas (Desenvolvimento) (Caderno Prova 3). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho