Escolar Documentos
Profissional Documentos
Cultura Documentos
2011-2
Outline
Notao Assinttica ca o
Notao Assinttica ca o
Porque notao assinttica ? ca o
Notao Assinttica ca o
Notao Assinttica ca o
Porque notao assinttica ? Resumir o comportamento de um ca o algoritmo em frmulas simples e de fcil compreenso o a a
Notao Assinttica ca o
Notao Assinttica ca o
Porque notao assinttica ? Resumir o comportamento de um ca o algoritmo em frmulas simples e de fcil compreenso o a a A anlise da ecincia de algoritmos, geralmente, se concentra na a e ordem de crescimento assinttico das operaes bsicas de um o co a algoritmo, como o principal indicador de sua ecincia. e
Notao Assinttica ca o
Notao Assinttica ca o
Porque notao assinttica ? Resumir o comportamento de um ca o algoritmo em frmulas simples e de fcil compreenso o a a A anlise da ecincia de algoritmos, geralmente, se concentra na a e ordem de crescimento assinttico das operaes bsicas de um o co a algoritmo, como o principal indicador de sua ecincia. e Para comparar e classicar estas ordens de crescimento, so a utilizadas notaes assintticas. co o
Notao Assinttica ca o
Notao Assinttica ca o
Porque notao assinttica ? Resumir o comportamento de um ca o algoritmo em frmulas simples e de fcil compreenso o a a A anlise da ecincia de algoritmos, geralmente, se concentra na a e ordem de crescimento assinttico das operaes bsicas de um o co a algoritmo, como o principal indicador de sua ecincia. e Para comparar e classicar estas ordens de crescimento, so a utilizadas notaes assintticas. co o Um algoritmo que assintoticamente mais eciente ser a melhor e a escolha para todas as entradas (exceto as muito pequenas)
Notao Assinttica ca o
Sejam g (n) = (n + 1)2 e f (n) = n2 As funoes g (n) e f (n) dominam c assintoticamente uma a outra, j a que |(n + 1)2 | 4|n2 | para n 1 e |n2 | |(n + 1)2 | para n 0.
cg (n) f (n)
n0
Notao Assinttica ca o
E mais:
Notao Assinttica ca o
Notao Assinttica ca o
Denio: ca Sejam duas funes f (n) e g (n) assintoticamente no-negativas, co a dizemos que f (n) est na ordem O de g (n), e escrevemos a f (n) = O(g (n)) ou f (n) O(g (n)) se exitem constantes c > 0 e n0 > 0 tais que 0 f (n) cg (n) para todo n n0 A notao O dene um limite superior para a funo, por um fator ca ca constante
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
f (n)
Notao Assinttica ca o
Notao Assinttica ca o
n0
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Prove que se T (n) = 15n3 + n2 + 4, ento, T (n) = O(n3 ). a Prova Seja c = 20 e n0 = 1. Devemos mostrar que 0 f (n) cg (n).
Notao Assinttica ca o
Prove que se T (n) = 15n3 + n2 + 4, ento, T (n) = O(n3 ). a Prova Seja c = 20 e n0 = 1. Devemos mostrar que 0 f (n) cg (n). 0 15n3 + n2 + 4 para todo n n0 = 1.
Notao Assinttica ca o
Prove que se T (n) = 15n3 + n2 + 4, ento, T (n) = O(n3 ). a Prova Seja c = 20 e n0 = 1. Devemos mostrar que 0 f (n) cg (n). 0 15n3 + n2 + 4 para todo n n0 = 1. f (n) = 15n3 + n2 + 4 15n3 + n3 + 4n3
Notao Assinttica ca o
Prove que se T (n) = 15n3 + n2 + 4, ento, T (n) = O(n3 ). a Prova Seja c = 20 e n0 = 1. Devemos mostrar que 0 f (n) cg (n). 0 15n3 + n2 + 4 para todo n n0 = 1. f (n) = 15n3 + n2 + 4 15n3 + n3 + 4n3 15n3 + n3 + 4n3 = 20n3 = 20g (n) = cg (n).
Notao Assinttica ca o
Notao Assinttica ca o
Prove que se f (n) = 25n + 18 e g (n) = n, ento f (n) O(g (n)) . a Prova Fazendo c = 26 e n0 = 19, obtemos a relao desejada. ca 25n + 18 26n para todo n n0 . Portanto, f (n) = O(g (n)). E claro que existem outras escolhas para essas constantes, mas uma escolha suciente. e
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
2n c
2n 2n c.2n ?
Certamente para qualquer constante c, podemos encontrar n tal que a desigualdade acima no satisfeita. a e
Notao Assinttica ca o
Notao Assinttica ca o
T (n) = O(n2 )
Notao Assinttica ca o
T (n) = O(n2 )
T (n) = O(n3 )
Notao Assinttica ca o
T (n) = O(n2 )
T (n) = O(n3 )
Notao Assinttica ca o
T (n) = O(n2 )
T (n) = O(n3 )
T (n) = O(2n )
Notao Assinttica ca o
T (n) = O(n2 )
T (n) = O(n3 )
T (n) = O(2n )
Notao Assinttica ca o
T (n) = O(n2 )
T (n) = O(n3 )
Notao Assinttica ca o
T (n) = O(n2 )
T (n) = O(n3 )
Notao Assinttica ca o
T (n) = O(n2 )
T (n) = O(n3 )
T (n) = O((1.5)n )
Notao Assinttica ca o
T (n) = O(n2 )
T (n) = O(n3 )
T (n) = O((1.5)n )
Notao Assinttica ca o
T (n) = O(n2 )
T (n) = O(n3 )
Notao Assinttica ca o
Notao Assinttica ca o
NAO
Notao Assinttica ca o
NAO
Notao Assinttica ca o
NAO NAO
Notao Assinttica ca o
n2 10n + 100 = O(n log n)? f (n) = O(2n ) f (n) = O(n2 )? f (n) = O(2n ) f (n) = (n2 )?
NAO NAO
Notao Assinttica ca o
n2 10n + 100 = O(n log n)? f (n) = O(2n ) f (n) = O(n2 )? f (n) = O(2n ) f (n) = (n2 )?
Notao Assinttica ca o
n2 10n + 100 = O(n log n)? f (n) = O(2n ) f (n) = O(n2 )? f (n) = O(2n ) f (n) = (n2 )? n = O(log2 n)?
Notao Assinttica ca o
n2 10n + 100 = O(n log n)? f (n) = O(2n ) f (n) = O(n2 )? f (n) = O(2n ) f (n) = (n2 )? n = O(log2 n)? NAO
Notao Assinttica ca o
n2 10n + 100 = O(n log n)? f (n) = O(2n ) f (n) = O(n2 )? f (n) = O(2n ) f (n) = (n2 )? n = O(log2 n)?
n
NAO
n2 + (1.5)n = O(2 2 )?
Notao Assinttica ca o
n2 10n + 100 = O(n log n)? f (n) = O(2n ) f (n) = O(n2 )? f (n) = O(2n ) f (n) = (n2 )? n = O(log2 n)?
n
NAO NAO
n2 + (1.5)n = O(2 2 )?
Notao Assinttica ca o
Exemplos
Ento, qual a complexidade do FindEquals? a e FindEquals(A) 1 for i 1 to length(A) 1 2 do for j i + 1 to length(A) 3 do if A[i ] = A[j] 4 then return true 5 return false
Notao Assinttica ca o
Exemplos
Ento, qual a complexidade do FindEquals? a e FindEquals(A) 1 for i 1 to length(A) 1 2 do for j i + 1 to length(A) 3 do if A[i ] = A[j] 4 then return true 5 return false T (n) = O(n2 )
POSCOMP 2003
Quais das seguintes igualdades so verdadeiras? a I. n2 = O(n3 ) II. 2n + 1 = O(n2 ) III. n3 = O(n2 ) IV. 3n + 5n log n = O(n) V. log n + sqrt(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 V
Prof. Warley Gramacho Projeto e Anlise de Algoritmos a Notao Assinttica ca o
POSCOMP 2003
Quais das seguintes igualdades so verdadeiras? a I. n2 = O(n3 ) II. 2n + 1 = O(n2 ) III. n3 = O(n2 ) IV. 3n + 5n log n = O(n) V. log n + sqrt(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 V
Prof. Warley Gramacho Projeto e Anlise de Algoritmos a Notao Assinttica ca o
Notao ca
Notao Assinttica ca o
Notao ca
Denio: ca Sejam duas funes f (n) e g (n) assintoticamente no-negativas, co a dizemos que f (n) est na ordem de g (n), e escrevemos a f (n) = (g (n)) ou f (n) (g (n)) se exitem constantes c > 0 e n0 > 0 tais que f (n) 0 e f (n) cg (n) para todo n n0 A notao dene um limite inferior para a funo, por um fator ca ca constante
Notao Assinttica ca o
Notao (2) ca
Notao Assinttica ca o
Notao (2) ca
Dado uma funo g (n), dene-se a familia de funes (g (n)) ca co
Notao Assinttica ca o
Notao (2) ca
Dado uma funo g (n), dene-se a familia de funes (g (n)) ca co f (n)
Notao Assinttica ca o
Notao (2) ca
Dado uma funo g (n), dene-se a familia de funes (g (n)) ca co f (n) cg (n)
Notao Assinttica ca o
Notao (2) ca
Dado uma funo g (n), dene-se a familia de funes (g (n)) ca co f (n) cg (n)
n0
Notao Assinttica ca o
Notao (2) ca
Dado uma funo g (n), dene-se a familia de funes (g (n)) ca co f (n) cg (n)
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Mostre que f (n) = 3n3 + 2n2 (n3 ) e Prova Para mostrar que f (n) = 3n3 + 2n2 (n3 ) e basta fazer c = 1, e ento: a 3n3 + 2n2 n3 paran 0.
Notao Assinttica ca o
Notao Assinttica ca o
Mostre que f (n) = n3 + 100n (n3 ) e Prova a E fcil vericar que f (n) = n3 + 100n (n3 ), e pois n3 + 100n n3 para todo n 0.
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Prove que n log n (n) e Prova Devemos mostra que n log n cn De fato para todo c = 1 e n 2 tem-se
Notao Assinttica ca o
Prove que n log n (n) e Prova Devemos mostra que n log n cn De fato para todo c = 1 e n 2 tem-se log n 1
Notao Assinttica ca o
Prove que n log n (n) e Prova Devemos mostra que n log n cn De fato para todo c = 1 e n 2 tem-se log n 1 e portanto n log n n
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao ca
Notao Assinttica ca o
Notao ca
Denio: ca Sejam duas funes f (n) e g (n) assintoticamente no-negativas, co a dizemos que f (n) est na ordem de g (n), e escrevemos a f (n) = (g (n)) ou f (n) (g (n)) se exitem constantes c > 0 e n0 > 0 tais que c1 g (n) f (n) c2 g (n) para todo n n0 A notao dene um limite apertado(tight bound, em ingls) ca e para a funo ca
Notao Assinttica ca o
Notao ca
Notao Assinttica ca o
Notao ca
Dado uma funo g (n), dene-se a familia de funes (g (n)) ca co
Notao Assinttica ca o
Notao ca
Dado uma funo g (n), dene-se a familia de funes (g (n)) ca co f (n)
Notao Assinttica ca o
Notao ca
Dado uma funo g (n), dene-se a familia de funes (g (n)) ca co c2 g (n) f (n) c1 g (n)
Notao Assinttica ca o
Notao ca
Dado uma funo g (n), dene-se a familia de funes (g (n)) ca co c2 g (n) f (n) c1 g (n)
n0
Notao Assinttica ca o
Notao ca
Dado uma funo g (n), dene-se a familia de funes (g (n)) ca co c2 g (n) f (n) c1 g (n)
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
O lado direito da desigualdade ser sempre vlido para qualquer valor de n 1 quando escola a 1 hermos c2 . 3
Notao Assinttica ca o
O lado direito da desigualdade ser sempre vlido para qualquer valor de n 1 quando escola a 1 hermos c2 . 3 1 , o lado esquerdo da desigualdade ser vlido para qualquer valor de n 7. a a Escolhendo c1 21
Notao Assinttica ca o
O lado direito da desigualdade ser sempre vlido para qualquer valor de n 1 quando escola a 1 hermos c2 . 3 1 , o lado esquerdo da desigualdade ser vlido para qualquer valor de n 7. a a Escolhendo c1 21 1 1 1 Logo, escolhendo c1 = , c2 = e n0 = 7, verica-se que n2 2n = (n2 ). 21 3 2
Notao Assinttica ca o
O lado direito da desigualdade ser sempre vlido para qualquer valor de n 1 quando escola a 1 hermos c2 . 3 1 , o lado esquerdo da desigualdade ser vlido para qualquer valor de n 7. a a Escolhendo c1 21 1 1 1 Logo, escolhendo c1 = , c2 = e n0 = 7, verica-se que n2 2n = (n2 ). 21 3 2
OBS: Outras constantes podem existir, mas o importante que existe alguma escolha para as trs constantes. e e Prof. Warley Gramacho Projeto e Anlise de Algoritmos a Notao Assinttica ca o
Notao Assinttica ca o
1 n(n 1) (n2 ). 2
Notao Assinttica ca o
1 n(n 1) (n2 ). 2
Notao Assinttica ca o
1 n(n 1) (n2 ). 2
Notao Assinttica ca o
1 n(n 1) (n2 ). 2
Notao Assinttica ca o
1 n(n 1) (n2 ). 2
Notao Assinttica ca o
1 n(n 1) (n2 ). 2
Notao Assinttica ca o
Notao Assinttica ca o
Prove que 6n3 (n2 ) Prova c1 n2 6n3 c2 n2 c1 6n c2 ca Assim, temos que c2 6n, n n0 . Contradio!
Notao Assinttica ca o
Notao Assinttica ca o
n2 2n (n2 ) ? e 2
Notao Assinttica ca o
n2 2n (n2 ) ? e 2
O lado direito da desigualdade ser sempre vlido para qualquer valor de n 1 quando escola a 1 hermos c2 . 4
Notao Assinttica ca o
n2 2n (n2 ) ? e 2
O lado direito da desigualdade ser sempre vlido para qualquer valor de n 1 quando escola a 1 hermos c2 . 4 1 , o lado esquerdo da desigualdade ser vlido para qualquer valor de n 8. a a Escolhendo c1 21
Notao Assinttica ca o
n2 2n (n2 ) ? e 2
O lado direito da desigualdade ser sempre vlido para qualquer valor de n 1 quando escola a 1 hermos c2 . 4 1 , o lado esquerdo da desigualdade ser vlido para qualquer valor de n 8. a a Escolhendo c1 21 1 n2 1 , c2 = e n0 = 7, verica-se que 2n = (n2 ). Logo, escolhendo c1 = 21 2 2
Prof. Warley Gramacho Projeto e Anlise de Algoritmos a Notao Assinttica ca o
Notao Assinttica ca o
Prova
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
Notao Assinttica ca o
T (n) = (n)
Notao Assinttica ca o
T (n) = (n)
Notao Assinttica ca o
Notao Assinttica ca o
T (n) = (n2 )
Notao Assinttica ca o
T (n) = (n2 )
T (n) = (2 6 )
Notao Assinttica ca o
T (n) = (n2 )
T (n) = (2 6 )
Notao Assinttica ca o
T (n) = (n2 )
T (n) = (2 6 )
1 T (n) = ( n )
Notao Assinttica ca o
T (n) = (n2 )
T (n) = (2 6 )
1 T (n) = ( n )
Notao Assinttica ca o
T (n) = (n2 )
T (n) = (2 6 )
1 T (n) = ( n )
T (n) = (n)
Notao Assinttica ca o
Relaoes entre O, e c
Theorema: Para quaisquer duas funes f (n) e g (n), co f (n) = (g (n)) f (n) = O(g (n)) f (n) = (g (n))
Notao Assinttica ca o
Relaoes entre O, e c
Theorema: Para quaisquer duas funes f (n) e g (n), co f (n) = (g (n)) f (n) = O(g (n)) f (n) = (g (n)) As notaes O, e podem ser vistas como relaes de funes co co co assintticas , e =, respectivamente o
Notao Assinttica ca o
Relaoes entre O, e c
Theorema: Para quaisquer duas funes f (n) e g (n), co f (n) = (g (n)) f (n) = O(g (n)) f (n) = (g (n)) As notaes O, e podem ser vistas como relaes de funes co co co assintticas , e =, respectivamente o O teorema acima pode ser interpretado como f g f g f =g
Notao Assinttica ca o
Relaoes entre O, e c
Theorema: Para quaisquer duas funes f (n) e g (n), co f (n) = (g (n)) f (n) = O(g (n)) f (n) = (g (n)) As notaes O, e podem ser vistas como relaes de funes co co co assintticas , e =, respectivamente o O teorema acima pode ser interpretado como f g f g f =g Quando f (n) = O(g (n)) dizemos que g (n) um limite superior para e f (n), e que g (n) domina f (n)
Notao Assinttica ca o
Relaoes entre O, e c
Theorema: Para quaisquer duas funes f (n) e g (n), co f (n) = (g (n)) f (n) = O(g (n)) f (n) = (g (n)) As notaes O, e podem ser vistas como relaes de funes co co co assintticas , e =, respectivamente o O teorema acima pode ser interpretado como f g f g f =g Quando f (n) = O(g (n)) dizemos que g (n) um limite superior para e f (n), e que g (n) domina f (n) Quando f (n) = (g (n)) dizemos que g (n) um limite inferior para e f (n)
Prof. Warley Gramacho Projeto e Anlise de Algoritmos a Notao Assinttica ca o
Funoes Annimas O, e c o
Podemos usar as notaes O, e para representao funes co ca co annimas (desconhecido) o E.g., f (n) = 10n2 + O(n) signica que f (n) igual a 10n2 mais uma funao, que no sabemos e c a ou que no nos importa saber, que assintoticamente linear n. a e
Notao Assinttica ca o
Funoes Annimas O, e c o
Podemos usar as notaes O, e para representao funes co ca co annimas (desconhecido) o E.g., f (n) = 10n2 + O(n) signica que f (n) igual a 10n2 mais uma funao, que no sabemos e c a ou que no nos importa saber, que assintoticamente linear n. a e Exemplos n2 + 4n 1 = n2 + (n)?
Notao Assinttica ca o
Funoes Annimas O, e c o
Podemos usar as notaes O, e para representao funes co ca co annimas (desconhecido) o E.g., f (n) = 10n2 + O(n) signica que f (n) igual a 10n2 mais uma funao, que no sabemos e c a ou que no nos importa saber, que assintoticamente linear n. a e Exemplos n2 + 4n 1 = n2 + (n)? SIM
Notao Assinttica ca o
Funoes Annimas O, e c o
Podemos usar as notaes O, e para representao funes co ca co annimas (desconhecido) o E.g., f (n) = 10n2 + O(n) signica que f (n) igual a 10n2 mais uma funao, que no sabemos e c a ou que no nos importa saber, que assintoticamente linear n. a e Exemplos n2 + (n) 1 = O(n2 )? n2 + 4n 1 = n2 + (n)? SIM
Notao Assinttica ca o
Funoes Annimas O, e c o
Podemos usar as notaes O, e para representao funes co ca co annimas (desconhecido) o E.g., f (n) = 10n2 + O(n) signica que f (n) igual a 10n2 mais uma funao, que no sabemos e c a ou que no nos importa saber, que assintoticamente linear n. a e Exemplos n2 + (n) 1 = O(n2 )? n2 + 4n 1 = n2 + (n)? SIM NAO
Notao Assinttica ca o
Funoes Annimas O, e c o
Podemos usar as notaes O, e para representao funes co ca co annimas (desconhecido) o E.g., f (n) = 10n2 + O(n) signica que f (n) igual a 10n2 mais uma funao, que no sabemos e c a ou que no nos importa saber, que assintoticamente linear n. a e Exemplos n2 + (n) 1 = O(n2 )? n2 + 4n 1 = n2 + (n)? SIM NAO
n2 + O(n) 1 = O(n2 )?
Notao Assinttica ca o
Funoes Annimas O, e c o
Podemos usar as notaes O, e para representao funes co ca co annimas (desconhecido) o E.g., f (n) = 10n2 + O(n) signica que f (n) igual a 10n2 mais uma funao, que no sabemos e c a ou que no nos importa saber, que assintoticamente linear n. a e Exemplos n2 + (n) 1 = O(n2 )? n2 + 4n 1 = n2 + (n)? SIM NAO SIM
n2 + O(n) 1 = O(n2 )?
Notao Assinttica ca o
Funoes Annimas O, e c o
Podemos usar as notaes O, e para representao funes co ca co annimas (desconhecido) o E.g., f (n) = 10n2 + O(n) signica que f (n) igual a 10n2 mais uma funao, que no sabemos e c a ou que no nos importa saber, que assintoticamente linear n. a e Exemplos n2 + (n) 1 = O(n2 )? n2 + 4n 1 = n2 + (n)? SIM NAO
Funoes Annimas O, e c o
Podemos usar as notaes O, e para representao funes co ca co annimas (desconhecido) o E.g., f (n) = 10n2 + O(n) signica que f (n) igual a 10n2 mais uma funao, que no sabemos e c a ou que no nos importa saber, que assintoticamente linear n. a e Exemplos n2 + (n) 1 = O(n2 )? n2 + 4n 1 = n2 + (n)? SIM NAO
Propriedades de O, e
f (n) = O(f (n)) cf (n) = O(f (n)), onde c constante O(f (n)) + O(f (n)) = O(f (n)) O(O(f (n))) = O(f (n)) O(f (n)) + O(g (n)) = O(max(f (n), g (n))) O(f (n))O(g (n)) = O(f (n)g (n)) f (n)O(g (n)) = O(f (n) + g (n))
Notao Assinttica ca o
Notao o ca
Notao Assinttica ca o
Notao o ca
O limite superior denido pela notao O, pode ou no ser ca a assintoticamente apertado (asymptotically tight, em ingls) e
Notao Assinttica ca o
Notao o ca
O limite superior denido pela notao O, pode ou no ser ca a assintoticamente apertado (asymptotically tight, em ingls) e E.g., n log n = O(n2 ) no assintoticamente apertado a assintoticamente apertado e n2 n + 10 = O(n2 )
Notao Assinttica ca o
Notao o ca
O limite superior denido pela notao O, pode ou no ser ca a assintoticamente apertado (asymptotically tight, em ingls) e E.g., n log n = O(n2 ) no assintoticamente apertado a assintoticamente apertado e n2 n + 10 = O(n2 )
Usamos a notao o para denotar limites superiores que so no ca a a assintoticamente apertado. Assim, dada uma funo g (n), ca denimos a fam de funes o(n(g )) lia co o(g (n)) = {f (n) : c > 0, n0 > 0
Notao Assinttica ca o
Notao ca
Uma funo g (n) o(f (n)) se, para qualquer constante c > 0, ento ca e a 0 < g (n) < cf (n) para todo n n0 . Exemplo: 2n = o(n2 ), mas 2n2 = o(n2 ). Intuitivamente, dizemos que o pequeno assintoticamente anlogo a e a menor que e O grande, anlogo a menor ou igual a. Assim, 2n2 a e O(n2 ), mas no o(n2 ). J 2n o(n2 ) e O(n2 ). a e a e
Notao Assinttica ca o
Notao ca
Notao Assinttica ca o
Notao ca
O limite inferior denido pela notao , pode ou no ser ca a assintoticamente apertado (asymptotically tight, em ingls) e
Notao Assinttica ca o
Notao ca
O limite inferior denido pela notao , pode ou no ser ca a assintoticamente apertado (asymptotically tight, em ingls) e E.g., 2n = (n log n) no assintoticamente apertado a e assintoticamente apertado e
n + 4n log n = (n log n)
Notao Assinttica ca o
Notao ca
O limite inferior denido pela notao , pode ou no ser ca a assintoticamente apertado (asymptotically tight, em ingls) e E.g., 2n = (n log n) no assintoticamente apertado a e assintoticamente apertado e
n + 4n log n = (n log n)
Usamos a notao para denotar limites inferiores que so no ca a a assintoticamente apertado. Assim, dada uma funo g (n), ca denimos a fam de funes (n(g )) lia co (g (n)) = {f (n) : c > 0, n0 > 0
Notao ca
Uma funo g (n) (f (n)) se, para qualquer constante c > 0, ento ca e a 0 cf (n) < g (n) para todo n n0 . Exemplo: n2 n2 = (n), mas = (n2 ). 2 2
Intuitivamente, dizemos que assintoticamente anlogo a maior que e a n2 (n2 ), mas no (n2 ). e a e e anlogo a maior ou igual a. Assim, a 2 2 n (n) e (n). e J a 2
Notao Assinttica ca o
Comparao de Funoes ca c
Muitas das propriedades relacionais de nmeros reais tambm se u e aplicam a comparaes assintticas. co o No caso das propriedades seguinte, suponhamos que f (n) e g (n) sejam assintoticamente positivas.
Notao Assinttica ca o
Transitividade:
f (n) = (g (n)) e g (n) = (h(n)) implicam f (n) = (h(n)) f (n) = O(g (n)) e g (n) = O(h(n)) implicam f (n) = O(h(n)) f (n) = (g (n)) e g (n) = (h(n)) implicam f (n) = (h(n)) f (n) = o(g (n)) e g (n) = o(h(n)) implicam f (n) = o(h(n)) f (n) = (g (n)) e g (n) = (h(n)) implicam f (n) = (h(n))
Notao Assinttica ca o
Simetria
Simetria de transposio ca
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))
Projeto e Anlise de Algoritmos a Notao Assinttica ca o
Analogia entre a comparao assinttica de duas funes f e g e a ca o co comparao de dois nmeros reais a e b: ca u f (n) = O(g (n)) f (n) = (g (n)) f (n) = (g (n)) f (n) = o(g (n)) f (n) = (g (n)) ab ab a=b a<b a>b
Notao Assinttica ca o
Notao Assinttica ca o
Algoritmos de complexidade O(1) so ditos de complexidade a constante. Uso do algoritmo independe de n. As instruoes do algoritmo so executadas um nmero xo de vezes. c a u
Notao Assinttica ca o
Algoritmos de complexidade O(1) so ditos de complexidade a constante. Uso do algoritmo independe de n. As instruoes do algoritmo so executadas um nmero xo de vezes. c a u
F (n) = O(log n)
Um algoritmo de complexidade O(log n) dito ter complexidade logar tmica. Tpico em algoritmos que transformam um problema em outros o menores. Pode-se considerar o tempo de execuo como menor que uma ca constante grande. Quando n 1 mil, log2 n 10, quando n 1 milho, log2 n 20.
Notao Assinttica ca o
Notao Assinttica ca o
Um algoritmo de complexidade O(n) dito ter complexidade linear. Em geral, um pequeno trabalho realizado sobre cada elemento de entrada. a melhor situao poss para um algoritmo que tem de ca vel processar/produzir n elementos de entrada/sada. Cada vez que n dobra de tamanho, o tempo de execuo dobra. ca
Notao Assinttica ca o
Um algoritmo de complexidade O(n) dito ter complexidade linear. Em geral, um pequeno trabalho realizado sobre cada elemento de entrada. a melhor situao poss para um algoritmo que tem de ca vel processar/produzir n elementos de entrada/sada. Cada vez que n dobra de tamanho, o tempo de execuo dobra. ca
Tpico em algoritmos que quebram um problema em outros menores, o resolvendo cada um deles independentemente e ajuntando as soluoes c depois. Quando n 1 milho, n log2 n cerca de 20 milhes. a o Quando n 2 milhes, n log2 n cerca de 42 milhes, pouco mais que o o o dobro.
Notao Assinttica ca o
Notao Assinttica ca o
Um algoritmo de complexidade O(n2 ) dito ter complexidade quadrtica. a Ocorrem quando os itens dados so processados aos pares, muitas a vezes em um anel dentro de outro. Sempre que n dobra, o tempo de execuo multiplicado por 4. ca Uteis para resolver problemas de tamanhos relativamente pequeno.
Notao Assinttica ca o
Um algoritmo de complexidade O(n2 ) dito ter complexidade quadrtica. a Ocorrem quando os itens dados so processados aos pares, muitas a vezes em um anel dentro de outro. Sempre que n dobra, o tempo de execuo multiplicado por 4. ca Uteis para resolver problemas de tamanhos relativamente pequeno.
F (n) = O(n3 )
Um algoritmo de complexidade O(n3 ) dito ter complexidade cbica. u u teis apenas para resolver pequenos problemas. Quando n 100, o nmero de operaoes da ordem de 1 milho. u c Sempre que n dobra, o tempo de execuo ca multiplicado por 8. ca
Notao Assinttica ca o
Notao Assinttica ca o
Um algoritmo com complexidade O(2n ) dito ter complexidade exponencial. Em geral, no so teis sob o ponto de vista prtico. a u a Ocorrem na soluo de problemas quando se usa fora bruta para ca c resolve-los. Quando n 20, o tempo de execuo cerca de 1 milho. Quando n ca dobra o tempo ca elevado ao quadrado.
Notao Assinttica ca o
Um algoritmo com complexidade O(2n ) dito ter complexidade exponencial. Em geral, no so teis sob o ponto de vista prtico. a u a Ocorrem na soluo de problemas quando se usa fora bruta para ca c resolve-los. Quando n 20, o tempo de execuo cerca de 1 milho. Quando n ca dobra o tempo ca elevado ao quadrado.
F (n) = O(n!)
Um algoritmo de complexidade O(n!) dito ter complexidade exponencial, apesar de O(n!) ter comportamento muito pior do que O(2n ). n = 20 20!, um nmero com 19 d u gitos. n = 40 40!, um nmero com 48 d u gitos.
Projeto e Anlise de Algoritmos a Notao Assinttica ca o
POSCOMP 2007
Observe as funoes representadas no grco abaixo. c a
Assinale a armativa FALSA sobre o crescimento assinttico dessas funoes. o c a) f (n) = O(h(n)) e i (n) = (g (n)). b) f (n) = (h(n)) e i (n) = (h(n)). c) g (n) = O(i (n)) e h(n) = (g (n)). d) g (n) = O(i (n)), i (n) = O(f (n)) e, portanto, g (n) = O(f (n)). e) h(n) = (i (n)), logo, i (n) = O(h(n)).
Prof. Warley Gramacho Projeto e Anlise de Algoritmos a Notao Assinttica ca o
POSCOMP 2007
Observe as funoes representadas no grco abaixo. c a
Assinale a armativa FALSA sobre o crescimento assinttico dessas funoes. o c a) f (n) = O(h(n)) e i (n) = (g (n)). b) f (n) = (h(n)) e i (n) = (h(n)). c) g (n) = O(i (n)) e h(n) = (g (n)). d) g (n) = O(i (n)), i (n) = O(f (n)) e, portanto, g (n) = O(f (n)). e) h(n) = (i (n)), logo, i (n) = O(h(n)).
Prof. Warley Gramacho Projeto e Anlise de Algoritmos a Notao Assinttica ca o