Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Análise e Projeto de Algoritmos
Análise de Complexidade
Exercícios
Prof. Rodrigo Freitas Silva
rodrigo.f.silva@ufes.br
Prof. Rodrigo Freitas Silva / UFES 1
Algoritmos: Eficiência
o Exemplo: Merge Sort (c2n lg n) X Insertion Sort (c1n2)
o Suponha dois computadores A e B
• A executa 10M (107) instruções por segundo
• B executa 1G (109) instruções por segundo
• Ou seja, B é 100 vezes mais rápido que A
o Merge Sort (digamos 50n lg n) implementado em A
o Insertion Sort (digamos 2n2) implementado em B
o O que acontece quando ordenamos um vetor de um milhão (106) de elementos?
o Qual algoritmo é mais rápido?
Prof. Rodrigo Freitas Silva / UFES 2
Algoritmos: Eficiência
o Exemplo: Merge Sort (c2n lg n) X Insertion Sort (c1n2)
o Merge Sort (50n lg n) implementado em A (107 instruções/segundo)
50 106 lg 106 𝑖𝑛𝑠𝑡𝑟𝑢çõ𝑒𝑠
107 𝑖𝑛𝑠𝑡𝑟𝑢çõ𝑒𝑠/𝑠𝑒𝑔𝑢𝑛𝑑𝑜
= ~100 𝑠𝑒𝑔𝑢𝑛𝑑𝑜𝑠
o Insertion Sort (2n2) implementado em B (109 instruções/segundo)
2(106)2 𝑖𝑛𝑠𝑡𝑟𝑢çõ𝑒𝑠
109 𝑖𝑛𝑠𝑡𝑟𝑢çõ𝑒𝑠/𝑠𝑒𝑔𝑢𝑛𝑑𝑜
= 2000 𝑠𝑒𝑔𝑢𝑛𝑑𝑜𝑠
Prof. Rodrigo Freitas Silva / UFES 3
o A executou 20 vezes mais rápido do que B !!!
o Se o vetor tivesse 10 milhões de elementos, a razão seria de 2.3 dias para 20 minutos !!!
Exemplo: Algoritmo para encontrar o menor elemento
o Considere o algoritmo para encontrar o menor elemento de um vetor de 
inteiros A[1..n]; n ≥ 1 
Function Min (var A: Vetor): integer;
var i, Temp: integer;
begin
Temp := A[1];
for i:=2 to n do
if Temp > A[i] then
Temp := A[i];
Min := Temp;
end;
o Se A contiver n elementos, temos:
o f(n) = n – 1 para n ≥ 1
o Vamos provar que o algoritmo apresentado no programa acima é ótimo
Prof. Rodrigo Freitas Silva / UFES 4
Exemplo: Algoritmo para encontrar o menor elemento
o Teorema: Qualquer algoritmo para encontrar o menor elemento de 
um conjunto com n elementos, n ≥ 1, faz pelo menos n - 1 
comparações
o Prova: Cada um dos n - 1 elementos tem de ser mostrado, por meio 
de comparações, que é menor do que algum outro elemento
o Logo n - 1 comparações são necessárias
O teorema acima nos diz que, SE o número de comparações for utilizado 
como medida de custo, então a função Min do programa anterior é ótima
Prof. Rodrigo Freitas Silva / UFES 5
POSCOMP 2003
o Qual é o número mínimo de comparações necessárias para 
encontrar o menor elemento de um conjunto qualquer não ordenado 
de n elementos?
a) 1
b) n – 1
c) n
d) n + 1
e) n log n
Prof. Rodrigo Freitas Silva / UFES 6
POSCOMP 2003
o Qual é o número mínimo de comparações necessárias para 
encontrar o menor elemento de um conjunto qualquer não ordenado 
de n elementos?
a) 1
b) n – 1
c) n
d) n + 1
e) n log n
Prof. Rodrigo Freitas Silva / UFES 7
o Quanto vale k no fim da execução do seguinte trecho de código?
a) n – 1
b) N
c) (n2 - n)/2
d) n(n + 1)/2
e) n3
POSCOMP 2004
k = 0
for (i = 1; i <= n; i++)
for (j = i; j <= n; j++ )
k = k + 1
Prof. Rodrigo Freitas Silva / UFES 8
o Quanto vale k no fim da execução do seguinte trecho de código?
a) n – 1
b) N
c) (n2 - n)/2
d) n(n + 1)/2
e) n3
o Equivale a verificar o número de operações de atribuição (k = k + 1) são executadas, 
sendo que cada operação desta possui custo 1. Logo:
σ𝑖=1
𝑛 σ𝑗=𝑖
𝑛 1 = σ𝑖=1
𝑛 𝑖 = 1 + 2 + ... + (n - 2) + (n – 1) + n = 
𝑛(𝑛+1)
2
POSCOMP 2004
k = 0
for (i = 1; i <= n; i++)
for (j = i; j <= n; j++ )
k = k + 1
Prof. Rodrigo Freitas Silva / UFES 9
o Complexidade do caso médio: 
o Toda pesquisa recupera um registro
o Seja pi for a probabilidade do i-ésimo registro ser procurado, e que para recuperar o i-
ésimo registro são necessárias i comparações, então
f(n) = 1 x p1 +2 x p2 +3 x p3 + ... +n x pn
o Para calcular f(n) basta conhecer a distribuição de probabilidades pi.
o Considerando que cada registro tenha a mesma probabilidade de ser acessado que todos 
os outros, então pi = 1/n; 1 ≤ i ≤ n. 
o Complexidade do caso médio = σ𝑖=1
𝑛 𝑝𝑖𝑡𝑖 = 
1
𝑛
(1+2+3+...+n) = 
1
𝑛
(n(n+1)
2
= 
n+1
2
o A análise do caso médio revela que uma pesquisa com sucesso examina 
aproximadamente metade dos registros
Exemplo Caso Médio : Registros de um Arquivo
Prof. Rodrigo Freitas Silva / UFES 10
POSCOMP 2002
o Considere o algoritmo da busca sequencial de um elemento em um 
conjunto com n elementos? A expressão que representa o tempo 
médio de execução desse algoritmo para uma busca bem sucedida é?
a) n2
b) n(n + 1)/2
c) log2n
d) (n + 1)/2
e) n log n
Prof. Rodrigo Freitas Silva / UFES 11
POSCOMP 2002
o Considere o algoritmo da busca sequencial de um elemento em um 
conjunto com n elementos? A expressão que representa o tempo 
médio de execução desse algoritmo para uma busca bem sucedida é?
a) n2
b) n(n + 1)/2
c) log2n
d) (n + 1)/2
e) n log n
Prof. Rodrigo Freitas Silva / UFES 12
POSCOMP 2006
o Dada uma lista linear de n+1 elementos ordenados e alocados 
sequencialmente, qual é o número médio (número esperado) de 
elementos que devem ser movidos para que se faça uma inserção na 
lista, considerando-se igualmente prováveis as n+1 posições de 
inserção?
a) n /2
b) (n + 2)/2
c) (n - 1)/2
d) n(n + 3 + 2/n)/2
e) (n + 1)/2
Prof. Rodrigo Freitas Silva / UFES 13
POSCOMP 2006
o Dada uma lista linear de n+1 elementos ordenados e alocados 
sequencialmente, qual é o número médio (número esperado) de 
elementos que devem ser movidos para que se faça uma inserção na 
lista, considerando-se igualmente prováveis as n+1 posições de 
inserção?
a) n /2
b) (n + 2)/2
c) (n - 1)/2
d) n(n + 3 + 2/n)/2
e) (n + 1)/2
Prof. Rodrigo Freitas Silva / UFES 14
POSCOMP 2006
o Dada uma lista linear de n+1 elementos ordenados e alocados sequencialmente, qual é o número 
médio (número esperado) de elementos que devem ser movidos para que se faça uma inserção na lista, 
considerando-se igualmente prováveis as n+1 posições de inserção?
o Considerando n+1 entradas sendo Ei, 1 ≤ i ≤ n+1, e que:
o Se a inserção for na 1º posição, n+1 nº seriam movidos
o Se a inserção for na 2º posição, n nº seriam movidos
o Se a inserção for na 3º posição, n-1 nº seriam movidos
o ...
o Se a inserção for na penúltima posição, 1 nº seria movidos
o Se a inserção for na última posição, 0 nº seriam movidos
o Probabilidade pi =
1
𝑛+1
Complexidade do caso médio = σ𝑖=1
𝑛+1 𝑝𝑖𝑡𝑖 = 
1
𝑛+1
∗ (1+2+...+n+(n+1)) =
1
𝑛+1
* 
𝑛+1(𝑛+1+1)
2
= 
𝑛+2
2
Prof. Rodrigo Freitas Silva / UFES 15
o Problema 3: Considere o algoritmo da busca sequencial de um
elemento em um vetor com n elementos. Considere que o elemento
procurado tenha probabilidade de
3
4
de estar na primeira metade do
vetor, ou seja, de estar em 1, ... ,
𝑛
2
, e que tenha probabilidade de
1
4
de estar na segunda metade do vetor, ou seja, em
𝑛
2
+1, ... ,𝑛 . Qual é
o número médio de comparações efetuadas nesse algoritmo para
uma busca bem sucedida?
Exemplo Caso Médio : Busca Sequencial
Prof. Rodrigo Freitas Silva / UFES 16
Posição 
Vetor
ti pi
1 1 6
4𝑛
2 2 6
4𝑛
... ... 6
4𝑛
𝑛
2
𝑛
2
6
4𝑛
𝑛
2
+1
𝑛
2
+1
2
4𝑛
𝑛
2
+2
𝑛
2
+2
2
4𝑛
... ... 2
4𝑛
n n 2
4𝑛
o Problema 3: Considere o algoritmo da busca sequencial de um elemento em um vetor com n elementos. Considere
que o elemento procurado tenha probabilidade de
3
4
de estar na primeira metade do vetor, ou seja, de estar em ቂ1,
Exemplo Caso Médio : Busca Sequencial
Prof. Rodrigo Freitas Silva / UFES 17
Probabilidade 
de ocorrência
3
4
1
4
൙
3
4
𝑛
2
=
6
4𝑛
൙
1
4
𝑛
2
=
2
4𝑛
Posição 
Vetor
ti pi
1 1 6
4𝑛
2 2 6
4𝑛
... ... 6
4𝑛
𝑛
2
𝑛
2
6
4𝑛
𝑛
2
+1
𝑛
2
+1
2
4𝑛
𝑛
2
+2
𝑛
2
+2
2
4𝑛
... ... 2
4𝑛
n n 2
4𝑛
o Problema 3: Considere o algoritmo da busca sequencial de um elemento em um vetor com n elementos. Considere
que o elemento procurado tenha probabilidade de
3
4
de estar na primeira metade do vetor, ou seja, de estar em ቂ1,
Exemplo Caso Médio : Busca Sequencial
Prof. RodrigoFreitas Silva / UFES 18
𝑓 𝑛 =෍
𝑖=1
𝑛
𝑝𝑖𝑡𝑖 =෍
𝑖=1
𝑛
2
6
4𝑛
𝑖 + ෍
𝑖=
𝑛
2
+1
𝑛
2
4𝑛
𝑖 =
6
4𝑛
෍
𝑖=1
𝑛
2
𝑖 +
2
4𝑛
෍
𝑖=
𝑛
2
+1
𝑛
𝑖
o Sabe-se que:
Soma dos termos de uma PA = 
𝑛(𝑎1+𝑎𝑛)
2
Posição 
Vetor
ti pi
1 1 6
4𝑛
2 2 6
4𝑛
... ... 6
4𝑛
𝑛
2
𝑛
2
6
4𝑛
𝑛
2
+1
𝑛
2
+1
2
4𝑛
𝑛
2
+2
𝑛
2
+2
2
4𝑛
... ... 2
4𝑛
n n 2
4𝑛
o Problema 3: Considere o algoritmo da busca sequencial de um elemento em um vetor com n elementos. Considere
que o elemento procurado tenha probabilidade de
3
4
de estar na primeira metade do vetor, ou seja, de estar em
1, ... ,
𝑛
2
, e que tenha probabilidade de
1
4
de estar na segunda metade do vetor, ou seja, em
𝑛
2
+1, ... ,𝑛 . Qual é o
número médio de comparações efetuadas nesse algoritmo para uma busca bem sucedida?
Exemplo Caso Médio : Busca Sequencial
Prof. Rodrigo Freitas Silva / UFES 19
𝑓 𝑛 =෍
𝑖=1
𝑛
𝑝𝑖𝑡𝑖 =෍
𝑖=1
𝑛
2
6
4𝑛
𝑖 + ෍
𝑖=
𝑛
2
+1
𝑛
2
4𝑛
𝑖 =
6
4𝑛
෍
𝑖=1
𝑛
2
𝑖 +
2
4𝑛
෍
𝑖=
𝑛
2
+1
𝑛
𝑖
𝑓 𝑛 =
3
4
𝑛
2
∗
𝑛
2
1 +
𝑛
2
2
+
1
4
𝑛
2
∗
𝑛
2
𝑛
2
+ 1 + 𝑛
2
𝑓 𝑛 =
3+
3𝑛
2
8
+
𝑛
2
+1+𝑛
8
=
3𝑛+4
8
Notação Θ: Exemplo 1
Prof. Rodrigo Freitas Silva / UFES 20
o Mostrar que: 
1
2
n2 – 3n = Θ (n2)
Para provar esta afirmação, devemos achar as constantes c1 > 0, c2 > 0, n > 0, 
tais que:
c1n
2 ≤ 
1
2
n2 – 3n ≤ c2n
2 para todo n ≥ no
Se dividirmos a expressão acima por n2 temos:
c1 ≤ 
1
2
-
3
𝑛
≤ c2
Notação Θ: Exemplo 1
o A inequação mais a esquerda será sempre válida para qualquer valor de n≥7 ao 
escolhermos c1 = 
1
14
o A inequação mais a direita será sempre válida para qualquer valor de n ≥1 ao 
escolhermos c2 = 
1
2
Assim, ao escolhermos c1 = 
1
14
, c2 = 
1
2
e n0 = 7, podemos verificar que que:
1
2
n2 – 3n = Θ(n2)
c1 ≤ 
1
2
-
3
𝑛
≤ c2
Prof. Rodrigo Freitas Silva / UFES 21
c1 ≤ 
1
2
-
3
𝑛
≤ c2
Notação Θ: Exemplo 1
o Mas porque c1 = 
1
14
e n0 = 7 ?
o Lembrando que as constantes devem ter os valores: c1 > 0, c2 > 0, n0 > 0
o Vamos supor que gostaríamos de obter os valores de c1 para outros valores de n0, teríamos:
Prof. Rodrigo Freitas Silva / UFES 22
c1 ≤ 
1
2
-
3
𝑛
≤ c2
n0 c1
1 ≤ -
5
2
2 ≤ -1
3 ≤ -
1
2
4 ≤ -
1
4
5 ≤ -
1
10
6 ≤ 0
7 ≤ 
1
14
c1 ≤ 
1
2
-
3
𝑛
c1 ≤ 
1
2
-
3
7
= 
7−6
14
= 
1
14
OBS: Note que existem outras escolhas para as constantes c1 e c2, mas o 
fato importante é que a escolha existe
Notação Θ: Exemplo 2
 Usando a definição formal de Θ prove que 6n3 ≠ Θ(n2).
Resposta !!!!
c1n
2 ≤ 6n3 ≤ c2n
2

c1n
2
𝑛2
≤ 
6n3
𝑛2
≤ 
c2n
2
𝑛2
 c1 ≤ 6n ≤ c2
 n ≤ c2/6 ????
Não é válido para um valor de n arbitrariamente grande, pois c2 é constante
Prof. Rodrigo Freitas Silva / UFES 23
Notação O: Exemplos
o Escreva as seguintes funções em notação O 
(Mostre o limite assintótico restrito)
1. f(n) = 100n
2. f(n) = 2n3 + 100n
3. Mostre que f(n) = n1.5 está em O(n2)
4. f(n) = (n+1)2.
5. 302
6. Seja f(n) = n e g(n) = n2. Mostre que g(n) não é O(n) !!!!
Prof. Rodrigo Freitas Silva / UFES 24
Notação O: Resolução dos Exemplos
1. Seja f(n) = 100n
Logo f(n) é O(n). Suponha: n0 = 1 e c = 100, já que
0 ≤ f(n) ≤ cg(n)
100n ≤ c n para n ≥ 1 e c = 100
2. Seja f(n) = 2n3 + 100n
Logo f(n) é O(n3). Suponha: n0 = 100 e c = 3, já que
2n3 + 100n ≤ 2n3 + n * n * n = 3n3 para n ≥ 100
3. Mostre que f(n) = n1.5 está em O(n2)
Suponha: n0 = 1 e c =1. De fato n1.5 ≤ n0.5n1.5 = n2
Prof. Rodrigo Freitas Silva / UFES 25
Notação O: Resolução dos Exemplos
4. Seja f(n) = (n+1)2
Logo f(n) é O(n2), para n0 = 1 e c = 4, já que
(n+1) 2 ≤ 4n2 para n ≥ 1
5. Seja f(n) = 302
Logo, f(n) = O(1), quando n0 = 1 e c = 302, já que
302 ≤ 302 * 1 para n ≥ 1
6. Seja f(n) = n e g(n) = n2. Mostre que g(n) não é O(n)
o Sabemos que f(n) é O(n2), pois para n ≥ 0, n ≤ n2
o Suponha que existam constantes c e n0 tais que para todo n ≥ n0, n
2 ≤ cn
Assim, c ≥ n para qualquer n ≥ n0. No entanto, não existe uma constante c que 
possa ser maior ou igual a n para todo n
Prof. Rodrigo Freitas Silva / UFES 26
Notação O : mais um exemplo
o Mostre através da definição que g(n) = 3n3 +2n2 +n é O(n3)
o Suponha: n0 = 1 e c =6
Assim, basta mostrar que 3n3 +2n2 +n ≤ 6n3, para n > 0, pois:
3n3 +2n2 +n ≤ 3n3 +2n3 +n3 ≤ 6n3
o OBS: A função g(n) = 3n3 +2n2 +n é também O(n4), entretanto esta 
afirmação é mais fraca do que dizer que g(n) é O(n3)
Prof. Rodrigo Freitas Silva / UFES 27
Notação O: mais exemplos
1) f (n) = n2 – 1  f(n) = O(n2)
2) f (n) = n2 – 1  f(n) = O(n3)
3) f (n) = 403  f(n) = O(1)
4) f (n) = 5 + 2log n + 3log2n  f(n) = O(log2n )
5) f (n) = 5 + 2log n + 3log2n  f(n) = O(n )
6) f (n) = 3n + 5log n + 2  f(n) = O(n )
7) f (n) = 2 * 2n + 5n10  f(n) = O(2n )
Prof. Rodrigo Freitas Silva / UFES 28
Notação O: Propriedades
o f(n) = O(f(n))
o c * O(f(n)) = O(f(n)) sendo c = constante
o O(f(n))+O(f(n)) = O(f(n))
o O(O(f(n)) = O(f(n))
o O(f(n))+O(g(n)) = O(max(f(n); g(n)))
o O(f(n))O(g(n)) = O(f(n)g(n))
o f(n)O(g(n)) = O(f(n)g(n))
Prof. Rodrigo Freitas Silva / UFES 29
Operações com a notação O: Exemplos
1) O produto de [lg n+k +O(1/n)] por [n+O(√n)] é ? 
o Resposta:
= n lg n + lg n (O(√n)) + kn + k O(√n) + n O(1/n) + O(1/n) O(√n) =
= n lg n + O(lg n √n) + kn + O(√n) + O(n * 1/n) + O(1/n * √n) =
= n lg n + kn + O(max(lg n √n; √n; 1; 1/n * √n)) =
= n (lg n + k) + O(lg n √n) 
Atenção às propriedades utilizadas:
o c x O(f(n)) = O(f(n)) sendo c = constante
o O(f(n))+O(g(n)) = O(max(f(n); g(n)))
o O(f(n))O(g(n)) = O(f(n)g(n))
o f(n)O(g(n)) = O(f(n)g(n))
Prof. Rodrigo Freitas Silva / UFES 30
Notação Ω: Exemplos
o Mostrar que f(n) = 3n3 + 2n2 é Ω(n3):
Basta supor c = 1, e então: 3n3 +2n2 ≥ c n3 para todo n > 0
o Mostrar que f(n) = n3 + 100n é Ω(n3): 
Basta supor c = 1, e então: n3 + 100n ≥ c n3 para todo n > 0
Definição de Ω:
Prof. Rodrigo Freitas Silva / UFES 31
Notação Ω: Exercícios
1) Mostrar que f(n) = n2 - 2n é Ω(n2).
2) Mostrar que f(n) = n log n é Ω(n).
3) Mostrar que f(n) = 100 n não está em Ω(n2).
Prof. Rodrigo Freitas Silva / UFES 32
Notação Ω: Resolução dos Exercícios
1. Mostrar que f(n) = n2 - 2n é Ω(n2).
De fato n2 - 2n ≥ ½ n2 para todo n ≥ 4 e c = ½ , pois:
n2 - 2n ≥ n2 - ½ n2 = ½ n2 para todo n ≥ 4
2. Mostrar que f(n) = n lg n é Ω(n).
De fato para c = 1 e todo n ≥ 2 tem-se lg n ≥ 1 e portanto (n lg n ≥ n)
3. Mostrar que f(n) = 100 n não está em Ω(n2).
100n ≥ c*n2  100 ≥ c*n
Logo, percebemos que 100 não é maior que n para n suficientemente grande
Prof. Rodrigo Freitas Silva / UFES 33
POSCOMP 2007
o Observe as funções representadas no gráfico abaixo e assinale a alternativa 
FALSA sobre o crescimento assintótico dessas funções.
A. f(n) = O(h(n)) e i(n) = Ω(g(n)) D. g(n) = O(i(n)), i(n) = O(f(n)) e, portanto, g(n) = O(f(n))
B. f(n) = Θ(h(n)) e i(n) = Ω(h(n)) E. h(n) = Ω(i(n)), logo, i(n) = O(h(n))
C. g(n) = O(i(n)) e h(n) = Ω(g(n))
Prof. Rodrigo Freitas Silva / UFES 34
POSCOMP 2007
o Observe as funções representadas no gráfico abaixo e assinale a alternativa 
FALSA sobre o crescimento assintótico dessas funções.
A. f(n) = O(h(n)) e i(n) = Ω(g(n)) D. g(n) = O(i(n)), i(n) = O(f(n)) e, portanto, g(n) = O(f(n))
B. f(n) = Θ(h(n)) e i(n) = Ω(h(n)) E. h(n) = Ω(i(n)), logo, i(n) = O(h(n))
C. g(n) = O(i(n)) e h(n) = Ω(g(n))
Prof. Rodrigo Freitas Silva / UFES 35
POSCOMP 2003
o Quais das seguintes igualdades são verdadeiras?
I. n2 = O(n3)
II. 2*n + 1 = O(n2)
III. n3 = O(n2)
IV. 3*n + 5*n log n = O(n)
V. log n + 𝑛= O(n)
A. Somente I e II
B. Somente II, III e IV
C. Somente III, IV e V
D. Somente I, II e V
E. Somente I, III e IV
Prof. Rodrigo Freitas Silva / UFES 36
POSCOMP 2003
o Quais das seguintes igualdades são verdadeiras?
I. n2 = O(n3)
II. 2*n + 1 = O(n2)
III. n3 = O(n2)
IV. 3*n + 5*n log n = O(n)
V. log n + 𝑛= O(n)
A. SomenteI e II
B. Somente II, III e IV
C. Somente III, IV e V
D. Somente I, II e V
E. Somente I, III e IV
Prof. Rodrigo Freitas Silva / UFES 37
Notação assintótica em funções
o Exercícios:
1) Sejam f(n) e g(n) funções assintoticamente não negativas. Usando a 
definição básica da notação Θ, prove que max(f(n), g(n)) = Θ(f(n) + g(n))
2) Mostre que, para quaisquer constantes reais a e b, onde b > 0, 
(n + a)b = Θ(nb)
3) É verdade que 2n+1 = O(2n) ??? É verdade que 22n = O(2n) ???
4) f(n) = O(g(n)) implica g(n) = O(f(n)) ????
Prof. Rodrigo Freitas Silva / UFES 38
Notação assintótica em funções
o Exercícios - Resolução
1) Sejam f(n) e g(n) funções assintoticamente não negativas. Usando a definição 
básica da notação Θ, prove que max(f(n), g(n)) = Θ(f(n) + g(n)).
R: Mostrar que max(f(n), g(n)) = Θ(f(n) + g(n)) significa dizer que existem 
constantes positivas c1, c2 e n0 tal que:
0 ≤ c1(f(n) + g(n)) ≤ max(f(n), g(n)) ≤ c2(f(n) + g(n)) para todo n ≥ n0
o Se escolhermos c2 = 1, a terceira inequação é claramente satisfeita, já que a maior das 
duas funções deve ser menor que sua soma.
o Poderíamos escolher c1 como ½, já que a maior das funções é sempre maior do que a 
média entre f(n) e g(n) Prof. Rodrigo Freitas Silva / UFES 39
o Exercícios - Resolução
2) Mostre que, para quaisquer constantes reais a e b, onde b > 0, (n + a)b = Θ(nb)
R: Precisaremos achar as constantes positivas c1, c2 e n0 > 0, tal que:
0 ≤ c1n
b ≤ (n + a)b ≤ c2n
b para todo n ≥ n0
Note que: n + a ≤ n + |a| ≤ 2n quando |a| ≤ n
n + a ≥ n - |a| ≥ ½ n quando |a| ≤ ½ n  n ≥ 2|a|
Logo:
0 ≤ ½ n ≤ n + a ≤ 2n
 0 ≤ (½ n)b ≤ (n + a)b ≤ (2n)b
 0 ≤ (½)b nb ≤ (n + a)b ≤ 2bnb
Assim, c1 = (1/2)b, c2 = 2b, e n0 = 2|a| satisfaz a definição.
Notação assintótica em funções
Prof. Rodrigo Freitas Silva / UFES 40
Notação assintótica em funções
o Exercícios - Resolução
3) É verdade que 2n+1 = O(2n) ??? É verdade que 22n = O(2n) ???
R: Para mostrar que 2n+1 = O(2n) devemos achar as constantes 
c, n0 > 0 que:
0 ≤ 2n+1 ≤ c (2n) para todo n ≥ n0
Já que 2n+1 = 2(2n) para todo n, a definição é satisfeita com c = 2 e n0 = 1 
Prof. Rodrigo Freitas Silva / UFES 41
Notação assintótica em funções
o Exercícios - Resolução
3) É verdade que 2n+1 = O(2n) ??? É verdade que 22n = O(2n) ???
R: Vamos assumir que existam constantes c, n0 > 0 tais que:
0 ≤ 22n ≤ c (2n) para todo n ≥ n0
Logo 22n = (2n)2 = 2n(2n) ≤ c (2n)  2n ≤ c
Mas nenhuma constante é maior que todos 2n
Assim, 22n ≠ O(2n) 
Prof. Rodrigo Freitas Silva / UFES 42
Notação assintótica em funções
o Exercícios - Resolução
4) f(n) = O(g(n)) implica g(n) = O(f(n)) ????
o Não, f(n) = O(g(n)) não implica g(n) = O(f(n)).
o Como contra-exemplo tem-se: f(n) = n e g(n) = n2
Logo:
n = O(n2) mas n2 ≠ O(n)
Prof. Rodrigo Freitas Silva / UFES 43
POSCOMP 2002
Quais das seguintes afirmações sobre crescimento assintótico de 
funções não é verdadeira?
a) 2n2 + 3n + 1 = O(n2)
b) Se f(n) = O(g(n)) então g(n) = O(f(n))
c) log n2 = O(log n)
d) Se f(n) = O(g(n)) e g(n) = O(h(n)) então f(n) = O(h(n)) 
e) 2n+1 = O(2n)
Prof. Rodrigo Freitas Silva / UFES 44
POSCOMP 2002
Quais das seguintes afirmações sobre crescimento assintótico de 
funções não é verdadeira?
a) 2n2 + 3n + 1 = O(n2)
b) Se f(n) = O(g(n)) então g(n) = O(f(n))
c) log n2 = O(log n)
d) Se f(n) = O(g(n)) e g(n) = O(h(n)) então f(n) = O(h(n)) 
e) 2n+1 = O(2n)
Prof. Rodrigo Freitas Silva / UFES 45
Exercício 1
Dois algoritmos A e B possuem complexidade n7 e 3n, respectivamente. 
Você utilizaria o algoritmo B ao invés do A? Em qual caso? 
Exemplifique.
Resposta: Sim. Apesar do algoritmo ser exponencial, quando o 
valor de n é pequeno, esta função produz um tempo de complexidade 
menor do que a função do algoritmo A. Por exemplo para valores de n
de 2 a 15 
Prof. Rodrigo Freitas Silva / UFES 46
Bibliografias utilizadas
1. Aho, A. V.; Hopcroft, J. E.; Ullman, J. D.; The Design and Analysis of 
Computer Algorithms, 1ed, Ed. Addison Wesley, 1974
2. T.H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein; Algoritmos: Teoria e 
Prática, ed.2, Campus, 2002. 
3. Jayme Luiz Swarcfiter, Lilian Markenzon, Estruturas de Dados e Seus
Algoritmos, 2a edition
4. Nivio Ziviani , Projeto De Algoritmos, 2º ed. , 2004
5. Papadimitriou, C. H.; Computational Complexity. 1ed, Ed. Addison Wesley, 
1994. 
6. Garey, M. R.; Johnson, D. S.; Computers and intractability: A guide to the 
theory of NP-completeness. Ed. Freeman, 1979. 
7. Toscani, L. V.; Veloso, P. A. S.; Complexidade de Algoritmos, 2ed, Ed. 
Bookman, 2008. 
Prof. Rodrigo Freitas Silva / UFES 47

Mais conteúdos dessa disciplina