1.Fácil
Qual classe de complexidade cresce mais rápido para n grande?
- AO(n²)
- BO(n log n)
- CO(n³)
- DO(2ⁿ)
2.Fácil
O que significa uma operação rodar em tempo O(1)?
- ASeu tempo de execução não cresce com o tamanho da entrada
- BSempre leva exatamente um segundo
- CSó pode ser executada uma vez
- DProcessa exatamente um elemento por segundo de tempo de execução
3.Fácil
O que a busca binária exige da sua entrada?
- AO array não pode ter mais de 1000 elementos
- BO tamanho do array deve ser uma potência de dois
- CO array deve estar ordenado
- DO array deve conter só números positivos
4.Média
Qual é a complexidade de tempo de: for i = 1 to n: for j = 1 to i: faça trabalho O(1)?
- AO(n³)
- BO(n²)
- CO(n)
- DO(n log n)
5.Média
Qual algoritmo encontra os caminhos mínimos a partir de uma origem em um grafo com pesos de arestas não negativos?
- ABusca em profundidade (DFS)
- BAlgoritmo de Dijkstra
- CAlgoritmo de Kruskal
- DBellman-Ford é necessário em todos os casos
6.Média
Qual é a complexidade de tempo do algoritmo padrão de programação dinâmica para a maior subsequência comum de strings de comprimentos m e n?
- AO(m + n)
- BO(2m+n)
- CO(mn log n)
- DO(mn)
7.Difícil
Como n! e 2ⁿ se comparam para n grande?
- A2ⁿ cresce mais rápido que n!
- BCrescem no mesmo ritmo
- Cn! é O(n²)
- Dn! cresce mais rápido que 2ⁿ
8.Difícil
Usando o teorema mestre, T(n) = 8T(n/2) + O(n²) tem como solução:
- AΘ(n² log n)
- BΘ(n²)
- CΘ(n log n)
- DΘ(n³)
Gabarito
- 1. D · O(2ⁿ)
- 2. A · Seu tempo de execução não cresce com o tamanho da entrada
- 3. C · O array deve estar ordenado
- 4. B · O(n²)
- 5. B · Algoritmo de Dijkstra
- 6. D · O(mn)
- 7. D · n! cresce mais rápido que 2ⁿ
- 8. D · Θ(n³)
Soluções completas passo a passo: pratique este tópico em examproblems.com.