• Ordem de crescimento
▫ Caracterização simples da eficiência do algoritmo
▫ Comparar desempenho relativo de algoritmos alternativos
• Quando observamos a ordem de crescimento
▫ Estamos estudando a eficiência assintótica dos algoritmos
▫ Estamos preocupados como o tempo de execução aumenta com tamanho da entrada
• Por exemplo
▫ O que é mais eficiente ou ?
n2
nlogn
• A notação assintótica
▫ Usada para descrever o tempo de execução assintótica de um algoritmo
▫ Definida em termos de funções cujos domínios são os conjuntos dos números naturais {0, 1, 2, 3, ....}
• Facilita a análise para valores de entrada grandes
• Vimos que o insertion-sort, no pior caso, possui tempo de execução
• O que significa isso?
• Para uma dada função , denotamos por o conjunto de funções
2)
(n n
T
) (n
g
g(n)
0
2
1 ( ) ( ) ( )
0 c g n f n c g n n n
g(n)
f (n) :constantespositivasc1, c2 en0, tais que
0
2
1 ( ) ( ) ( )
0 c g n f n c g n n n
g(n)
f (n) :constantespositivasc1,c2 e n0, tais que
n )
2g(n c
)
1g(n c
) (n f
n0
( )
)
(n g n
f
• Mostre que se , então
T n n 4n2 ) 1
( 2 T(n)
n22 2 2
2
1 4
2
0 c n 1 n n c n
0
2
1 ( ) ( ) ( )
0 c g n f n c g n n n
g(n)
f (n) :constantespositivasc1,c2 e n0, taisque
Aplicando a definição de temos que:
• Mostre que se , então
T n n 4n2 ) 1
( 2 T(n)
n20
2
1 ( ) ( ) ( )
0 c g n f n c g n n n
g(n)
f (n) :constantespositivasc1,c2 e n0, taisque
Dividindo por as inequações, obtemos:
2 1
4 2
0 1 c
c n
2 2 2
2
1 4
2
0 c n 1 n n c n n2
• Mostre que se , então
T n n 4n2 ) 1
( 2 T(n)
n20
2
1 ( ) ( ) ( )
0 c g n f n c g n n n
g(n)
f (n) :constantespositivasc1,c2 e n0, taisque
Escolhendo , obtemos:
2
1 16
4 2
0 c 1 c
0 16 n
2
1 4
0 c 1 c
• Mostre que se , então
T n n 4n2 ) 1
( 2 T(n)
n20
2
1 ( ) ( ) ( )
0 c g n f n c g n n n
g(n)
f (n) :constantespositivasc1,c2 e n0, taisque
Escolhendo e a inequação abaixo é satisfeita
2
1 4
0 c 1 c
5 1
1 c
2 1 4
1 5
0 1 2
1
2 c
• Mostre que se , então
T n n 4n2 ) 1
( 2 T(n)
n20
2
1 ( ) ( ) ( )
0 c g n f n c g n n n
g(n)
f (n) :constantespositivasc1,c2 e n0, taisque
Portanto, para todo , temos que
2 2
2
2 4 1
2 1 5
0 1 n n n n
16 n
• Graficamente, temos
2
1 5
) 1
(n n
g
c
n n
n
T 4
2 ) 1
( 2
2
2 2
) 1
(n n
g
c
0 16 n
• A notação limita assintoticamente uma função acima e abaixo
▫ Quando temos apenas um limite assintótico superior, usamos a notação O
▫ Usamos a notação O para darmos um limite superior
• A definição formal é
0
) ( )
(
0 f n cg n n n
g(n)
f (n) : constantespositivasc en0, tais queO
n ) (n cg
) (n f
n0
( )
)
(n O g n
f
0
) ( )
(
0 f n cg n n n
g(n)
f (n) : constantespositivasc en0, tais queO
• Quando temos apenas um limite assintótico inferior, usamos a notação
▫ Usamos a notação para darmos um limite inferior
• A definição formal é
0
) ( )
(
0 cg n f n n n
g(n)
f (n) :constantespositivascen0, tais que
0
) ( )
(
0 cg n f n n n
g(n)
f (n) :constantespositivascen0, tais que
n ) (n cg
) (n f
n0
( )
)
(n g n
f
Para duas funções quais e , temos se, e somente se, e .
) (n
f g(n) f (n)
g(n)
( )
)
(n O g n
f f (n)
g(n)
• O limite assintótico superior fornecido pela notação O pode ou não ser assintoticamente restrito (justo)
▫ é restrito
▫ não é restrito
• Usamos a notação o (ozinho) para representar um limite assintótico superior não restrito, formalmente
0
) ( )
( 0
que
tal f n cg n n n
g(n)
f (n) :constantec 0,uma constanten0 0,o
22n2 O n
22n O n
) 0 (
)
lim (
g n n f
n
0
) ( )
( 0
que
tal f n cg n n n
g(n)
f (n) :constantec 0,uma constanten0 0,o
• O limite assintótico inferior fornecido pela notação pode ou não ser assintoticamente restrito (justo)
▫ Dizemos que se, e somente se,
• Formalmente
0
) ( )
( 0
que
tal cg n f n n n
g(n)
f (n) :constantec 0,uma constanten0 0,
( )
)
(n g n
f
g(n) o
f (n)
0
) ( )
( 0
que
tal cg n f n n n
g(n)
f (n) :constantec 0,uma constanten0 0,
( )
) lim (
n g
n f
n
• Transitividade
( )
e ( )
( )
, então ( )
( )
) (
se f n g n g n h n f n h n
( )
e ( )
( )
, então ( )
( )
) (
se f n O g n g n O h n f n O h n
( )
e ( )
( )
, então ( )
( )
) (
se f n g n g n h n f n h n
( )
e ( )
( )
, então ( )
( )
) (
se f n o g n g n o h n f n o h n
( )
e ( )
( )
, então ( )
( )
) (
se f n
g n g n
h n f n
h n• Reflexividade
• Simetria
( )
)
(n f n
f
( )
)
(n O f n
f
( )
)
(n f n
f
( )
se,esomentese, ( )
( )
)
(n g n g n f n
f
• Simetria de transposição
• Analogia com números reais
( )
se,esomentese, ( )
( )
)
(n O g n g n f n
f
( )
se,esomentese, ( )
( )
)
(n o g n g n f n
f
g n
a bO n
f ( ) ( )
g n
a bn
f ( ) ( ) a
n
f ( ) b n
g( ) f (n)
g(n)
a b
g n
a bo n
f ( ) ( )
g n
a bn
f ( )
( ) • Monotonicidade
▫ Uma função é monotonicamente crescente se implica .
▫ Uma função é monotonicamente decrescente se implica .
▫ Uma função é estritamente crescente se implica .
▫ Uma função é estritamente decrescente se implica .
) (n
f m n
) ( )
(m f n
f
) (n
f m n
) ( )
(m f n
f
) (n
f m n
) ( )
(m f n
f
) (n
f m n
) ( )
(m f n
f
• Piso
▫ Para qualquer número real , denotamos o maior inteiro menor ou igual a , por (piso de )
• Teto
▫ Para qualquer número real , denotamos o menor inteiro maior ou igual a , por (teto de )
x xx x
xx x
x
• Propriedades
11
x x x x
x
n 2 n 2 n
n a b
n ab
n a b
n ab
a b
a (b 1)
b
a b
a (b1)
bZ b
Z a
R
n
0 e 0 e 0
• Para quaisquer naturais e , o valor de é o resto do quociente :
• Se escrevemos e dizemos que é equivalente a , módulo .
a n
a n na n
amod n
a
n amod
amodn
bmodn
a b (modn)a b n
mod
mod
0
b n n b a
a
• Dado um natural d, um polinômio em n de grau d é uma função na forma
• onde são constantes chamadas de coeficientes do polinômio e . Em particular
d
i
i in a n
p
0
) (
ad
a
a0, 1,...,
0 ad
dd
i
i
in n
a n
p
0
) (
• Para todos os valores , e reais, temos que
0 1 a
0
a m n
a a1
a a1 1
mn n
m a
a ) (
m n n
m a
a ) ( )
(
n m n
ma a
a
• Usando para denotar 2,71828...., a base da função logaritmo natural, para todo
• e portanto
! ...
4
! 3
! 1 2
!
4 3
2
0
x x
x x i
e x
i
i x
e
x ex 1
• Utilizaremos a seguinte notação
n n log2 log
n n loge ln
kk n logn
log
n
n log log log
log
a
bb
a log log
• Propriedades
ba
b a log
b a
ab c c
c( ) log log
log
a n
an b
b log
log
b a a
c c
b log
log log
a b ab 1 log
log
a b
a
b log
log 1
a
c b
b c
alog log
• Propriedades
5 ...
4 3
) 2 1
ln(
5 4
3
2
x x x x
x
x quando| x |1
x x x
x
ln(1 ) 1
, 0logk n o na a
• Definição recursiva
• Aproximação de Stirling
0 se
)!
1 (
0 se
! 1
n n
n n n
n e
n n n
n 1
1 2
!
n n ne e nn
2
!
n
n n 12
1 1
12
1
1 n
• Propriedades
nno n!
nn!
2
! ( log )log n n n
• Definição recursiva
0 se
) (
0 ) se
( ( 1)
) (
i n
f f
i n n
f i i
n n
f n
n
f ( ) 2 (i)( ) 2i
• Definição recursiva
2
para
1
0
2 1
1 0
F i
F F
F F F
i i
i i
5 ˆi
i
Fi
2 5 1
2 5 ˆ 1
razão áurea
conjugado da razão áurea
• Usando as definições de , O, , o e mostre que
a) b)
c)
d)
e)
f)
g)
nn O 2
2 1
n n
n n
nlog 5 log
32 o n
n
nn2
2logn o n
n
22 1
2n n
22n2 o n