Download - aula2.capacitiva
![Page 1: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/1.jpg)
Análise de Algoritmos
Notação Assintótica
Letícia Rodrigues Bueno
![Page 2: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/2.jpg)
Análise de Algoritmos
Notação Assintótica
• Para valores suficientemente pequenos de n, qualqueralgoritmo custa pouco para ser executado, mesmo osalgoritmos ineficientes;
![Page 3: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/3.jpg)
Análise de Algoritmos
Notação Assintótica
• Para valores suficientemente pequenos de n, qualqueralgoritmo custa pouco para ser executado, mesmo osalgoritmos ineficientes;
• A análise de algoritmos é realizada para valores grandesde n considerando-se o comportamento assintótico dasfunções de custo;
![Page 4: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/4.jpg)
Análise de Algoritmos
Notação Assintótica
• Para valores suficientemente pequenos de n, qualqueralgoritmo custa pouco para ser executado, mesmo osalgoritmos ineficientes;
• A análise de algoritmos é realizada para valores grandesde n considerando-se o comportamento assintótico dasfunções de custo;
• O comportamento assintótico de f (n) representa o limitedo comportamento do custo quando n cresce.
![Page 5: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/5.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Uma função f (n) é O(g(n)), notação f (n) = O(g(n)), seexistem duas constantes positivas c e m tais quef (n) ≤ c.g(n), para todo n ≥ m;
![Page 6: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/6.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Uma função f (n) é O(g(n)), notação f (n) = O(g(n)), seexistem duas constantes positivas c e m tais quef (n) ≤ c.g(n), para todo n ≥ m;
• f (n) = O(g(n)): g(n) é limite superior para f (n);
![Page 7: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/7.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Uma função f (n) é O(g(n)), notação f (n) = O(g(n)), seexistem duas constantes positivas c e m tais quef (n) ≤ c.g(n), para todo n ≥ m;
• f (n) = O(g(n)): g(n) é limite superior para f (n);
n
f, g
f(n)
c.g(n)
m
![Page 8: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/8.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Uma função f (n) é O(g(n)), notação f (n) = O(g(n)), seexistem duas constantes positivas c e m tais quef (n) ≤ c.g(n), para todo n ≥ m;
• f (n) = O(g(n)): g(n) é limite superior para f (n);
n
f, g
f(n)
c.g(n)
m
![Page 9: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/9.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Uma função f (n) é O(g(n)), notação f (n) = O(g(n)), seexistem duas constantes positivas c e m tais quef (n) ≤ c.g(n), para todo n ≥ m;
• f (n) = O(g(n)): g(n) é limite superior para f (n);
n
f, g
f(n)
c.g(n)
m
![Page 10: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/10.jpg)
Análise de Algoritmos
Notação Assintótica: Notação Ω
• Uma função g(n) é Ω(f (n)), notação g(n) = Ω(f (n)), seexistem duas constantes positivas c e m tais queg(n) ≥ c.f (n), para todo n ≥ m;
![Page 11: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/11.jpg)
Análise de Algoritmos
Notação Assintótica: Notação Ω
• Uma função g(n) é Ω(f (n)), notação g(n) = Ω(f (n)), seexistem duas constantes positivas c e m tais queg(n) ≥ c.f (n), para todo n ≥ m;
• g(n) = Ω(f (n)): f (n) é limite inferior para g(n) (tempomínimo do algoritmo);
![Page 12: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/12.jpg)
Análise de Algoritmos
Notação Assintótica: Notação Ω
• Uma função g(n) é Ω(f (n)), notação g(n) = Ω(f (n)), seexistem duas constantes positivas c e m tais queg(n) ≥ c.f (n), para todo n ≥ m;
• g(n) = Ω(f (n)): f (n) é limite inferior para g(n) (tempomínimo do algoritmo);
n
f, g
c.f(n)
g(n)
m
![Page 13: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/13.jpg)
Análise de Algoritmos
Notação Assintótica: Notação Ω
• Uma função g(n) é Ω(f (n)), notação g(n) = Ω(f (n)), seexistem duas constantes positivas c e m tais queg(n) ≥ c.f (n), para todo n ≥ m;
• g(n) = Ω(f (n)): f (n) é limite inferior para g(n) (tempomínimo do algoritmo);
n
f, g
c.f(n)
g(n)
m
![Page 14: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/14.jpg)
Análise de Algoritmos
Notação Assintótica: Notação Ω
• Uma função g(n) é Ω(f (n)), notação g(n) = Ω(f (n)), seexistem duas constantes positivas c e m tais queg(n) ≥ c.f (n), para todo n ≥ m;
• g(n) = Ω(f (n)): f (n) é limite inferior para g(n) (tempomínimo do algoritmo);
n
f, g
c.f(n)
g(n)
m
![Page 15: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/15.jpg)
Análise de Algoritmos
Notação Assintótica: Notação Θ
• Uma função g(n) é Θ(f (n)), notação g(n) = Θ(f (n)), seexistem duas constantes positivas c1, c2 e m tais que0 ≤ c1.f (n) ≤ g(n) ≤ c2.f (n), para todo n ≥ m;
![Page 16: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/16.jpg)
Análise de Algoritmos
Notação Assintótica: Notação Θ
• Uma função g(n) é Θ(f (n)), notação g(n) = Θ(f (n)), seexistem duas constantes positivas c1, c2 e m tais que0 ≤ c1.f (n) ≤ g(n) ≤ c2.f (n), para todo n ≥ m;
• g(n) = Θ(f (n)): f (n) é limite restrito para g(n) ou limiteassintótico firme;
![Page 17: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/17.jpg)
Análise de Algoritmos
Notação Assintótica: Notação Θ
• Uma função g(n) é Θ(f (n)), notação g(n) = Θ(f (n)), seexistem duas constantes positivas c1, c2 e m tais que0 ≤ c1.f (n) ≤ g(n) ≤ c2.f (n), para todo n ≥ m;
• g(n) = Θ(f (n)): f (n) é limite restrito para g(n) ou limiteassintótico firme;
n
f, g
c1.f(n)
g(n)
m
c2.f(n)
![Page 18: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/18.jpg)
Análise de Algoritmos
Notação Assintótica: Notação Θ
• Uma função g(n) é Θ(f (n)), notação g(n) = Θ(f (n)), seexistem duas constantes positivas c1, c2 e m tais que0 ≤ c1.f (n) ≤ g(n) ≤ c2.f (n), para todo n ≥ m;
• g(n) = Θ(f (n)): f (n) é limite restrito para g(n) ou limiteassintótico firme;
n
f, g
c1.f(n)
g(n)
m
c2.f(n)
![Page 19: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/19.jpg)
Análise de Algoritmos
Notação Assintótica: Notação Θ
• Uma função g(n) é Θ(f (n)), notação g(n) = Θ(f (n)), seexistem duas constantes positivas c1, c2 e m tais que0 ≤ c1.f (n) ≤ g(n) ≤ c2.f (n), para todo n ≥ m;
• g(n) = Θ(f (n)): f (n) é limite restrito para g(n) ou limiteassintótico firme;
n
f, g
c1.f(n)
g(n)
m
c2.f(n)
![Page 20: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/20.jpg)
Análise de Algoritmos
Notação Assintótica: Notações o e ω
• Uma função g(n) é o(f (n)), notação g(n) = o(f (n)), se,para qualquer constante c > 0, temos 0 ≤ g(n) < c.f (n),para todo n ≥ m;
![Page 21: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/21.jpg)
Análise de Algoritmos
Notação Assintótica: Notações o e ω
• Uma função g(n) é o(f (n)), notação g(n) = o(f (n)), se,para qualquer constante c > 0, temos 0 ≤ g(n) < c.f (n),para todo n ≥ m;
• Uma função g(n) é ω(f (n)), notação g(n) = ω(f (n)), se,para qualquer constante c > 0, temos 0 ≤ c.f (n) < g(n),para todo n ≥ m;
![Page 22: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/22.jpg)
Análise de Algoritmos
Notação Assintótica: Notações o e ω
• Uma função g(n) é o(f (n)), notação g(n) = o(f (n)), se,para qualquer constante c > 0, temos 0 ≤ g(n) < c.f (n),para todo n ≥ m;
• Uma função g(n) é ω(f (n)), notação g(n) = ω(f (n)), se,para qualquer constante c > 0, temos 0 ≤ c.f (n) < g(n),para todo n ≥ m;
![Page 23: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/23.jpg)
Análise de Algoritmos
Comparação de Funções
Muitas das propriedades relacionais de números reais tambémse aplicam a comparações assintóticas. No caso daspropriedades abaixo, suponha f (n) e g(n) assintoticamentepositivas.
1. Transitividade (válido também para O, Ω, o e ω):f (n) = Θ(g(n)) e g(n) = Θ(h(n)) então f (n) = Θ(h(n)).
2. Reflexividade (válido também para O e Ω):f (n) = Θ(f (n))
3. Simetria:f (n) = Θ(g(n)) se e somente se g(n) = Θ(f (n))
4. Simetria de transposição:f (n) = O(g(n)) se e somente se g(n) = Ω(f (n))f (n) = o(g(n)) se e somente se g(n) = ω(f (n))
![Page 24: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/24.jpg)
Análise de Algoritmos
Regras de Simplificação
1. Se f1(n) = O(g1(n)) e f2(n) = O(g2(n)), então f1(n) + f2(n)está em O(max(g1(n),g2(n))).
2. Se f1(n) = O(g1(n)) e f2(n) = O(g2(n)), então f1(n)f2(n)está em O(g1(n)g2(n)).
![Page 25: aula2.capacitiva](https://reader033.vdocuments.com.br/reader033/viewer/2022051401/55cf8f06550346703b9824e7/html5/thumbnails/25.jpg)
Análise de Algoritmos
Bibliografia
CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L. e STEIN, C.Introduction to Algorithms, 3a edição, MIT Press, 2009.
SZWARCFITER, J. L. e MARKENZON, L. Estruturas de Dados eseus Algoritmos, LTC, 1994.
ZIVIANI, N. Projeto de Algoritmos: com implementações em Pascal eC, 2a edição, Cengage Learning, 2009.