Sie sind auf Seite 1von 25

Complexidade de Algoritmos

Medidas de Tempo Assintóticas

Christian Azambuja Pagot


Professor
Eficiência
• A melhor medida é o tempo “exato” de
execução?
Eficiência
• A melhor medida é o tempo “exato” de
execução?
• Exemplo:
 n(n + 1)   n(n − 1)   n(n − 1) 
T (n) = c1n + c2 (n − 1) + c3 ( n −1) + c4  −1 + c5   + c6   + c7 ( n −1)
 2   2   2 
Eficiência
• Solução: Medidas de Tempo Assintóticas!
Eficiência
• Solução: Medidas de Tempo Assintóticas!
• Exemplo:
T (n) = an 2 + bn + c = Θ( n 2 )
Tamanho da Entrada

Tamanho da entrada
Complexidade
Complexidades
Tempo

Tamanho da entrada
Computadores mais Rápidos
• E quanto ao aumento da velocidade dos
computadores?
Computadores mais Rápidos
• E quanto ao aumento da velocidade dos
computadores?
• Exemplo: Suponha dois computadores:
– Computador A: velocidade = V
– Computador B: velocidade = 10 x V
Computadores mais Rápidos
• E quanto ao aumento da velocidade dos
computadores?
• Exemplo: Suponha dois computadores:
– Computador A: velocidade = V
– Computador B: velocidade = 10 x V
n2

n
Computadores mais Rápidos
• E quanto ao aumento da velocidade dos
computadores?
• Exemplo: Suponha dois computadores:
– Computador A: velocidade = V
– Computador B: velocidade = 10 x V
n2

Computador A xa2
xa n
Computadores mais Rápidos
• E quanto ao aumento da velocidade dos
computadores?
• Exemplo: Suponha dois computadores:
– Computador A: velocidade = V
– Computador B: velocidade = 10 x V
n2
Computador B 10xa2

Computador A xa2
xa n
Computadores mais Rápidos
• E quanto ao aumento da velocidade dos
computadores?
• Exemplo: Suponha dois computadores:
– Computador A: velocidade = V
– Computador B: velocidade = 10 x V
n2
Computador B 10xa2

Computador A xa2
xa xb n
Computadores mais Rápidos
Complexidade Máquina A Máquina B
log 2 n x0
n x1
n2 x2
n3 x3
2n x4
3n x5
log b ( xy ) = log b x + log b y
log b ( x p ) = p log b x
Computadores mais Rápidos
Complexidade Máquina A Máquina B
x0 10
log 2 n x0
n x1 10x1
n2 x2 3.16 x2
n3 x3 2.15 x3
2n x4 x4 + 3.3
3n x5 + 2.096
x5
Trabalho 1
• Implementar o algoritmo Insert Sort e executá-lo
em máquinas de diferentes velocidades.
• As entradas devem ser de vários tamanhos
(pequenos e grandes).
• Os elementos devem estar ordenados,
randomicamente distribuídos e em ordem
inversa.
• Comparar e analisar os resultados teóricos
esperados com os obtidos experimentalmente.
• Entregar resultados em um relatório.
• Data: 14/Mar/2011
Medidas de Tempo
Assintóticas
• Notação Θ
• Notação Ο
• Notação Ω
Notação Θ
• Dada uma função g(n), denota-se por Θ(g(n)) o
conjunto de funções

Θ( g (n)) = { f (n) : existem constantes positivas c1 , c2 , e n0


tal que 0 ≤ c1 g (n) ≤ f (n) ≤ c2 g (n) para todo n ≥ n0 }
Notação Θ
• Notação:
f (n) ∈ Θ( g (n))

• Entretanto, usa-se:

f (n) = Θ( g (n))
Notação Θ
f (n) = Θ( g (n))
c2 g ( n )

f (n)

c1 g (n)

n0 n
Notação Θ
1 2
• Exemplo: n − 3n = Θ(n 2 )
2
1 2 1 3
• Logo c1n ≤ n − 3n ≤ c2 n = c1 ≤ − ≤ c2
2 2

2 2 n
1 1
• Para n ≥ 1, c2 ≥ e n ≥ 7, c1 ≤
2 14
1 1 1
• n0 = 7, c1 = e c2 = tem - se n 2 − 3n = Θ(n 2 )
14 2 2
Notação Ο
• Dada uma função g(n), denota-se por Ο(g(n)) o
conjunto de funções

O( g (n)) = { f (n) : existem constantes positivas c e n0


tal que 0 ≤ f (n) ≤ cg (n) para todo n ≥ n0 }
Notação Ο
f (n) = O( g (n))
cg (n)

f (n)

n0 n
Notação Ω
• Dada uma função g(n), denota-se por Ω(g(n)) o
conjunto de funções

Ω( g (n)) = { f (n) : existem constantes positivas c e n0


tal que 0 ≤ cg (n) ≤ f (n) para todo n ≥ n0 }
Notação Ω
f (n) = Ω( g (n))

f (n)

cg (n)

n0 n

Das könnte Ihnen auch gefallen