1.Fácil
O que é memoização?
- AEscrever comentários ao lado de cada linha de código
- BLiberar memória depois que uma função retorna
- CArmazenar os resultados de chamadas de função para que chamadas repetidas sejam respondidas da memória
- DConverter automaticamente a recursão em um laço equivalente, de modo que não seja preciso pilha de chamadas
2.Fácil
O que descreve o tempo de execução de um algoritmo no pior caso?
- AO tempo esperado que leva com uma entrada aleatória de tamanho n
- BO tempo que leva num computador lento
- CO tempo que leva com a menor entrada
- DO tempo máximo que ele leva entre todas as entradas de tamanho n
3.Fácil
Acessar um elemento de um array pelo índice leva:
- AO(n)
- BO(n²)
- CO(log n)
- DO(1)
4.Média
Quantos níveis tem a recursão do merge sort para um array de n elementos?
- ACerca de √n
- BCerca de n
- CCerca de log₂ n
- DCerca de n / 2
5.Média
Uma função executa um laço de n iterações e depois, separadamente, outro laço de n iterações. Qual é a sua complexidade de tempo?
- AO(n²)
- BO(2ⁿ)
- CO(log n)
- DO(n)
6.Média
Qual é a complexidade de tempo amortizada de adicionar ao final de um array dinâmico que dobra sua capacidade quando fica cheio?
- AO(log n)
- BO(n²)
- CO(1)
- DO(n)
7.Difícil
Qual é a solução da recorrência T(n) = 2T(n/2) + n log n?
- AΘ(n log n)
- BΘ(n log² n)
- CΘ(n²)
- DΘ(n)
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. C · Armazenar os resultados de chamadas de função para que chamadas repetidas sejam respondidas da memória
- 2. D · O tempo máximo que ele leva entre todas as entradas de tamanho n
- 3. D · O(1)
- 4. C · Cerca de log₂ n
- 5. D · O(n)
- 6. C · O(1)
- 7. B · Θ(n log² n)
- 8. D · Θ(n³)
Soluções completas passo a passo: pratique este tópico em examproblems.com.