1a Quest˜ao 2a Quest˜ao 3a Quest˜ao 4a Quest˜ao

Propaganda
Programação em C++
Ciência da Computação
Alan R. R. de Freitas
Análise de Complexidade
1a Questão
O que significa dizer que uma função g(n) é O(f (n))?
2a Questão
Explique a diferença entre O(1) e O(2).
3a Questão
Indique se as afirmativas são verdadeiras ou falsas:
(a) 2n+1 = O(2n )
(b) 22n = O(2n )
(c) f (n) = O(u(n)) e g(n) = O(v(n)) → f (n) + g(n) = O(u(n) + v(n))
4a Questão
Se os algoritmos A e B levam tempo a(n) = n2 − n + 549 e b(n) = 49n + 49. a(n) = O(b(n))? b(n) = O(a(n))?
Para quais valores A leva menos tempo para executar do que B?
5a Questão
Apresente o esboço de uma algoritmo para obter o maior e o segundo maior elementos de um conjunto. Apresente
uma análise do algoritmo. Ele é eficiente? Por quê?
6a Questão
Considere um algoritmo para inserir um elemento em um arranjo ordenado de elementos. Qual o número mı́nimo
de passos para resolver este problema? Qual o melhor caso? Qual o pior caso? Qual o caso médio?
7a Questão
Do ponto de vista assintótico:
n
1 ≺ log log n ≺ log n ≺ n ≺ nc ≺ nlog n ≺ cn ≺ nn ≺ cc
Onde k ≥ 1 e 0 < < 1 < c
Indique se A é O de B para os pares abaixo:
A
A
A
A
A
A
A
=
=
=
=
=
=
logk n
k
n
p
(n)
2n
nlog m
log(n!)
B
B
B
B
B
B
B
1
O
=
=
=
=
=
=
n
cn
nsin n
2n/2
mlog n
log(nn )
Download