Prova 1

Você também pode gostar

Você está na página 1de 1

Análise de Algoritmos - Prova 1

Exercı́cio 1 (Corretude de Alg. Recursivo - 25 pontos). Seja v[a..b] um vetor de


números. Considere o seguinte algoritmo:
Maximo(v, a, b)
se b − a ≤ 1 então
retorna max(v[a], v[b])
max1 ← Maximo(v, a, b a+b 2 c)
max2 ← Maximo(v, b a+b2 c + 1, b)
retorna max(max1 , max2 )

OBS: A função computacional max(x, y) implementa a função matemática max{x, y}.

Prove que Maximo(v, a, b) devolve o maior elemento de v[a..b].

Exercı́cio 2 (Complexidade de Alg. Iterativo - 30 pontos). Considere o seguinte


algoritmo:
Dilema(n)
r←0
para i ← 1 até n faça
para j ← 1 até n faça
para k ← j + 1 até n faça
r ←r+1
retorna r

(a) [15 pontos] Qual é o valor exato retornado pelo algoritmo? Mostre seu raciocı́nio passo
a passo, expresse sua resposta em função de n.

(b) [15 pontos] Usando a resposta do item (a), analise a complexidade do algoritmo usando
a notação Ω (uma prova formal é necessária).

Exercı́cio 3 (Notação Assintótica (25 pontos)). Considere duas funções f : N → R e


g : N → R. Prove que, se f (n) = o(g(n)), então f (n) não pode ser Θ(g(n)).

Sua prova deve usar somente as definições elementares de notação assintótica (ou seja, sem
usar os teoremas vistos em aula).

Exercı́cio 4 (Notação Assintótica). Responda VERDADEIRO ou FALSO (não é ne-


cessário justificar).

(a) [5 pontos] 3n2 + n log n  n2 n
(b) [5 pontos] 3n2 + n log n = O(n2 )
1
(c) [5 pontos] n = Ω( n12 ).
(d) [5 pontos] 3n = Θ(2n ).

Você também pode gostar