Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1....
Transcript of Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1....
![Page 1: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/1.jpg)
Algoritmos e Estrutura de Dados
Fabrício Olivetti de França
02 de Fevereiro de 2019
![Page 2: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/2.jpg)
Topics
1. Análise de Algoritmos
2. Representação Assintótica
1
![Page 3: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/3.jpg)
Análise de Algoritmos
![Page 4: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/4.jpg)
Custo de um algoritmo
Frequentemente parte da solução de um problema admite:
• Múltiplos algoritmos• Múltiplas estruturas de dados com as mesmas funções básicas
2
![Page 5: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/5.jpg)
Custo de um algoritmo
Nessas situações, como fazer uma escolha acertada?
3
![Page 6: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/6.jpg)
Custo de um algoritmo
A Wikipedia lista cerca de 70 algoritmos de ordenação! Qual deles é omelhor e em qual situação?
4
![Page 7: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/7.jpg)
Custo de um algoritmo
Para comparar precisamos quantificar a qualidade de um algoritmo,isso pode ser feito medindo
• O custo computacional do algoritmo• O uso de memória• Combinação de ambos
5
![Page 8: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/8.jpg)
Custo de um algoritmo
Considere o seguinte algoritmo para encontrar o maior valor de umalista:
int maximo (int * x, int n) .L1 int j = n-1;.L2 for (int k=n-2; k>=0; k--)
.L3 if (x[k] > x[j])
.L4 j = k;
.L5 return X[j];
6
![Page 9: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/9.jpg)
Custo de um algoritmo
Esse algoritmo percorre a lista do final para o começo atualizando oíndice j sempre que encontra uma alternativa de maior valor.
7
![Page 10: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/10.jpg)
Custo de um algoritmo
Linha operações
L1 1L2 nL3 n-1L4 AL5 1
8
![Page 11: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/11.jpg)
Custo de um algoritmo
O custo dess algoritmo em número de operações é:1+ n+ n − 1+ A+ 1 = 2n+ A+ 1.
9
![Page 12: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/12.jpg)
Custo de um algoritmo
Em uma análise mais detalhada, traduziríamos o código para alinguagem Assembly e, em seguida, consideraríamos o custo deciclos de CPU para cada instrução.
10
![Page 13: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/13.jpg)
Custo de um algoritmo
Instrução ciclos
ADD 1MOV 1JMP 1XOR 2
11
![Page 14: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/14.jpg)
Custo de um algoritmo
Retornando a nossa análise, uma vez que n é dado, precisamosestimar o valor de A. Podemos fazer uma análise:
• Otimista: menor valor possível para A.• Pessimista: maior valor possível para A.• Probabilística: calcular a média e desvio-padrão (quão pertoesperamos que o valor esteja da média).
12
![Page 15: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/15.jpg)
Custo de um algoritmo
O menor valor para A é zero, ocorre quando Xn−1 contém o maiorvalor.
O maior valor para A é n-1, ocorre quando X0 contém o maior valor.
13
![Page 16: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/16.jpg)
Custo de um algoritmo
A média está no intervalo [0, n − 1]. Mas seu valor é n2 ?
√n?
14
![Page 17: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/17.jpg)
Custo de um algoritmo
Vamos considerar o índice começando do 1 e terminando em n eassumir que X1 = X2 = . . . = Xn.
15
![Page 18: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/18.jpg)
Custo de um algoritmo
Considerando que as probabilidades de quaisquer permutações de Xsão iguais.
Obs.: se conhecermos algum detalhe da natureza dos dadospodemos fazer outra suposição.
16
![Page 19: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/19.jpg)
Permutações e o valor de A
Para n = 3:
π A
X1 < X2 < X3 0X1 < X3 < X2 1X2 < X1 < X3 0X2 < X3 < X1 1X3 < X1 < X2 1X3 < X2 < X1 2
17
![Page 20: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/20.jpg)
Permutações e o valor de A
Qual a média dos valores de A?
π A
X1 < X2 < X3 0X1 < X3 < X2 1X2 < X1 < X3 0X2 < X3 < X1 1X3 < X1 < X2 1X3 < X2 < X1 2
18
![Page 21: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/21.jpg)
Permutações e o valor de A
0+ 1+ 0+ 1+ 1+ 26
=56
19
![Page 22: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/22.jpg)
Permutações e o valor de A
pnk = probabilidade que A = k para n objetos.
Pnk = em quantas permutações de n objetos A = k.
pnk =Pnkn!
20
![Page 23: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/23.jpg)
Permutações e o valor de A
p30 =26 =
13
p31 =36 =
12
p32 =16
21
![Page 24: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/24.jpg)
Média e Desvio-Padrão
A média pode ser calculada como:
An =∑
k k · pnk
22
![Page 25: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/25.jpg)
Média e Desvio-Padrão
A variância Vn é definida como a média de (A − An)2:
Vn =∑
k (k − An)2pnk =∑
k k2pnk − 2An∑
k k · pnk + A2n
∑k pnk
Vn =∑
k k2pnk − 2AnAn + A2n =
∑k k2pnk − A2
n
23
![Page 26: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/26.jpg)
Média e Desvio-Padrão
O Desvio-Padrão é simplesmente σn =√Vn.
24
![Page 27: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/27.jpg)
Permutações e o valor de A
Lembrando que:
pnk = Pnkn!
temos que:
Pnk = n!pnk
25
![Page 28: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/28.jpg)
Permutações e o valor de A
Assumindo que X1, X2, . . . , Xn pode ser qualquer permutação devalores.
26
![Page 29: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/29.jpg)
Permutações e o valor de A
Fixando X1 = n e fixando todo o resto de forma arbitrária, podemosdizer que:
AX1...Xnn = AX2...Xnn−1 + 1
Pois precisará fazer uma troca a mais!
27
![Page 30: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/30.jpg)
Permutações e o valor de A
Da mesma forma, se fizermos X1 = n, temos:
AX1...Xnn = AX2...Xnn−1
Pois não precisaremos trocar o último elemento.
28
![Page 31: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/31.jpg)
Permutações e o valor de A
Pnk = P(n−1)(k−1)︸ ︷︷ ︸X1=n
+ (n − 1)︸ ︷︷ ︸X1=1,2,...n−1
· P(n−1)k︸ ︷︷ ︸X1 =n
29
![Page 32: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/32.jpg)
Permutações e o valor de A
n! · pnk = (n − 1)! · p(n−1)(k−1) + (n − 1)!(n − 1) · p(n−1)k
pnk = 1n · p(n−1)(k−1) +
(n−1)n · p(n−1)k
30
![Page 33: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/33.jpg)
Permutações e o valor de A
Basta definirmos as condições inicias da recursão:
p1k =
1, se k = 00, c.c.
pnk = 0, k < 0
31
![Page 34: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/34.jpg)
Permutações e o valor de A
p30 = 13 · p2(−1) +
23 · p20
= 23 · ( 1
2 · p1(−1) +12 · p10)
= 23 · 1
2 · 1= 1
3
32
![Page 35: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/35.jpg)
Permutações e o valor de A
p31 = 13 · p20 +
23 · p21
= 1312 +
23 · ( 1
2 · p10 ++frac12 · p11)
= 16 +
2312
= 12
33
![Page 36: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/36.jpg)
Permutações e o valor de A
p32 = 13 · p21 +
23 · p22
= 1312 +
23 · ( 1
2p11 +12p12)
= 1312
= 16
34
![Page 37: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/37.jpg)
Permutações e o valor de A
Tendo o valor de pnk é possível calcular An, σn.
35
![Page 38: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/38.jpg)
Permutações e o valor de A
A sequência de passos para obter esses valores fogem do escopodesse curso (e requer conhecimento de funções geradoras e séries),porém o resultado será:
An = Hn − 1 = 12 +
13 + . . . + 1
n ≈ ln n
para n grande.
36
![Page 39: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/39.jpg)
Representação Assintótica
![Page 40: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/40.jpg)
Representação Assintótica
A Análise Assintótica é utilizada para determinar o comportamentoaproximado de um algoritmo para valores grandes de n.
37
![Page 41: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/41.jpg)
Notação-O
A notação-O é utilizada na matemática para definir termos de erro deaproximação.
Nessa notação os termos mais significativos são escritosexplicitamente e o restante são compactados com essa notação.
38
![Page 42: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/42.jpg)
Notação-O
ex = 1+ x+ x2
2! +x3
3! + . . .
= 1+ x+ x2
2! + O(x3)= 1+ x+ O(x2)
para x → 0. Lemos O(f(n)) como uma quantidade desconhecida debaixa magnitude.
39
![Page 43: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/43.jpg)
Notação-O
A definição da função O(.) para análise de algoritmos é a de mostraro termo dominante quando n → ∞.
40
![Page 44: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/44.jpg)
Notação-O
O(f(n)) : ∃M, n0, |g(n)| ≤ M|f(n)|∀n ≥ n0
Para todo n ≥ n0, g(n) se mantém menor que M · f(n).
41
![Page 45: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/45.jpg)
Notação-O
42
![Page 46: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/46.jpg)
Notação-O
Notação: dizemos que g(n) = O(f(n)) se f(n) aproximaassintoticamente o comportamento de g(n). Não podemos dizer queO(f(n)) = g(n).
43
![Page 47: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/47.jpg)
Notação-O
13n
3 + 12n
2 + 16n = O(n4)
13n
3 + 12n
2 + 16n = O(n3)
13n
3 + 12n
2 + 16n = 1
3n3 + O(n2)
44
![Page 48: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/48.jpg)
Notação-O
45
![Page 49: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/49.jpg)
Notação-O
Quanto mais próxima da equação real, mais forte é a aproximação.
46
![Page 50: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/50.jpg)
Notação-O para polinômios
p(n) = a0 + a1n+ a2n2 + . . . + amnm = O(nm)
47
![Page 51: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/51.jpg)
Notação-O para polinômios
|p(n)| ≤ |a0| + |a1|n+ |a2|n2 + . . . + |am|nm
= (|a0|/nm + |a1|/nm−1 + |a2|/nm−2 + . . . + |am|)nm
48
![Page 52: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/52.jpg)
Notação-O para polinômios
(|a0|/nm + |a1|/nm−1 + |a2|/nm−2 + . . . + |am|)nm ≤(|a0| + |a1| + |a2| + . . . + |am|)nm
para n ≥ 1.
49
![Page 53: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/53.jpg)
Notação-O para polinômios
M = a0| + |a1| + |a2| + . . . + |am|, n0 = 1
50
![Page 54: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/54.jpg)
Propriedades
f(n) = O(f(n))cO(f(n)) = O(f(n))O(f(n)) + O(g(n)) = O(f(n) + g(n))O(O(f(n)) = O(f(n))O(f(n))O(g(n)) = O(f(n)g(n))O(f(n)g(n)) = f(n)O(g(n))
51
![Page 55: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/55.jpg)
Notações comuns na computação
Lista de notações em ordem crescente de complexidade
notação nome
O(1) constanteO(log log n) duplo logaritmoO(log n) logaritmoO(n) linearO(n log n) loglinearO(n2) quadráticoO(nc) polinomialO(cn) exponencialO(n!) fatorial
52
![Page 56: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/56.jpg)
Notações comuns na computação
Figura 1: Fonte: https://en.wikipedia.org/wiki/Big_O_notation
53
![Page 57: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/57.jpg)
Notação-O
A notação-O não pode ser interpretada como um limitante inferiorou superior: O(n2) não implica que um algoritmo não pode executarem O(n) em alguns casos.
54
![Page 58: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/58.jpg)
Outras notações
Outras notações possíveis:
• notação-Ω: define um limitante inferior.• notação-Θ: define um valor exato exceto por uma constante.
55
![Page 59: Algoritmos e Estrutura de Dados - Fabrício Olivetti de ... · Representação Assintótica 1. AnálisedeAlgoritmos. Custodeumalgoritmo Frequentemente parte da solução de um problema](https://reader034.fdocumentos.tips/reader034/viewer/2022042314/5f0263e47e708231d40409e3/html5/thumbnails/59.jpg)
Próxima aula
Aprenderemos sobre a álgebra dos tipos, registros e estruturaslineares.
56