Questão nº 55
Questão de Análise de Sistemas · CESGRANRIO BNDES 01/2024 (nº 55)
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)?
- AAlgoritmo 1
- BAlgoritmo 2
- CAlgoritmo 3
- DAlgoritmo 4 (alternativa correta)
- EAlgoritmo 5
Resposta comentada
Gabarito Alternativa D
Conceito-chave: Complexidade assintótica descreve como o tempo cresce com o tamanho da entrada, mas ignora constantes multiplicativas e custos fixos por operação. Dois algoritmos podem ter tempos reais muito diferentes: um com operação interna cara () demora mais que um com operação barata (), mesmo ambos sendo lineares.
- (A) Incorreta: Algoritmo 1 é o mais simples possível: uma única operação 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 tempo total é , ainda pequeno comparado aos que têm operações internas caras.
- (C) Incorreta: Algoritmo 3 tem operação interna de custo fixo ; como é menor que , ele é mais rápido que o Algoritmo 4.
- (D) Correta: Algoritmo 4 tem operação interna com custo , onde . Como esse custo se repete vezes, o tempo real é , que é maior que (Algoritmo 3) e que (Algoritmo 2). A pegadinha: a banca quer que você perceba que 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 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.