Você está na página 1de 5

Reviso: O que uma funo matemtica ?

? Sendo A e B dois conjuntos no vazios em uma relao f de A em B, essa relao f uma funo de A em B quando a cada elemento de x do conjunto A est associado um e um s elemento y do conjunto B.

Crescimento assinttico de funes


Chamamos de comportamento assinttico o comportamento a ser observado em uma funo f(n), quando n tende ao infinito. Em geral, o custo aumenta com o tamanho n do problema. Para valores pequenos de n, mesmo um algoritmo ineficiente no custa muito para ser executado, por isso interessa-nos algoritmos de n entradas com n>>1. H uma notao especial que permite comparar classes de funes quanto ao crescimento assinttico. Essa notao extremamente til porque permitir comparar algoritmos diferentes para um mesmo problema e d indcios de como um novo algoritmo se comporta em relao a problemas conhecidos (basicamente problemas de busca e ordenao). Obs: Se f uma funo de complexidade para um algoritmo F, ento 0(f) considerado a complexidade assinttica do algoritmo F.

Notao (mega)
g(n) = f(n) : g(n) de ordem, no mnimo, f(n) f(n) um limite assinttico inferior g(n) cresce, pelo menos, to rpido quanfo f define um limite assinttico inferior para g(n) Se g(n) f(n) ento g(n) = f(n) g(n) f(n) ento existe c 0 e n tal que 0 cf(n) g(n), para todo n n. A notao usada para expressar o limite inferior do tempo de execuo de qualquer algoritmo para resolver um dado problema. Exemplos: (1) n2 (n) (2) n (log n) (3) Se f(n) = 7n3 + 5 e g(n) = 2n, ento g(n) f(n) Observao: o limite inferior para qualquer algoritmo de ordenao que utilize comparaes entre elementos (n log n)

Notao 0
g(n) = 0 f(n) : g(n) de ordem, no mximo, f(n) g(n) cresce, no mximo, to rpido quanfo f f(n) domina assintoticamente g(n)

Se g(n) 0 f(n) ento g(n) = 0 f(n) g(n) 0 f(n) ento existe c 0 e n tal que g(n) c f(n), para todo n n. A notao 0 usada para expressar o limite superior do tempo de execuo de um algoritmo para resolver um dado problema. Exemplos: (1) n 0 (n2) (2) log n 0 ( n) (3) 3n3 0 (n3) Obs 1: Se f(n)= 0(1) o algoritmo independe do tamanho de n, as instrues so executadas um nmero fixo de vezes. Obs 2: a notao 0 usamos para nos referirmos a algoritmos enquanto a notao usamos para nos referirmos a problemas.

Notao (teta)
g(n) = f(n) : g(n) da mesma ordem que f(n)

g(n) f(n) ento existe c1 0 e , c2 0 n tal que 0 c1 f(n) g(n) c2 f(n), para todo n n A notao 0 usada para expressar funes que crescem com a mesma rapidez para resolver um dado problema. Exemplos: (1) Verifica-se facilmente que 2n2 - 3n = (n2) Observao: a notao 0 usada para algoritmos enquanto a notao usamos para problemas e a notao depende de ambos.

Observaes:
Sejam dois algoritmos F e G. Se o algoritmo de F leva 3 vezes mais tempo que G para ser executado:

f(n) = 3 g(n), sendo que f(n) = 0 g(n) e ao mesmo tempo g(n) = 0 f(n), ou ainda podemos escrever: 0 f(n) = 0 g(n), ambos tem complexidade equivalente.

Se f(n)= 0(1) o algoritmo independe do tamanho de n, as instrues so executadas um nmero fixo de vezes.

f(n) = 0 (log n) ocorre tipicamente em algoritmo que resolvem um problema transformando-o em problemas menores.

f(n) = 0 (n log n) ocorre tipicamente em algoritmos que resolvem um problema quebrando-o em problemas menores, resolvendo cada um deles independentemente e depois juntando as solues.

f(n) = 0(n2) ocorre tipicamente quando os itens de dados so processados aos pares, em um, loop dentro de outro.

f(n) = 0 (2n) so os algoritmos do tipo fora-bruta, nada prticos para processar ordenao.

Você também pode gostar