Académique Documents
Professionnel Documents
Culture Documents
– Temporal
• Este tipo de complexidade é o mais usado podendo
dividir-se em dois grupos:
– Tempo (real) necessário à execução do algoritmo.
(como podemos medir?)
– Número de instruções necessárias à execução.
Analise de Algoritmos
• Medidas de Análise
– Devem ser independentes da tecnologia
(hardware/software)
– Modelos Matemáticos simplificados baseados nos fatores
relevantes:
• Tempo de Execução
Uma função que relaciona o tempo de execução com o
tamanho de entrada:
t = F(n)
– Conjunto de operações a serem executadas.
– Custo associado à execução de cada operação.
• Ocupação de Espaço em Memória
Complexidade
• Exemplo
– Sejam 5 algoritmos A1 a A5 para resolver um mesmo
problema, de complexidades diferentes. (Supomos que uma
operação leva 1 ms para ser efetuada.)
– Tk(n) é a complexidade ou seja o número de operações que o
algoritmo efetua para n entradas
n A1 A2 A3 A4 A5
T1(n)= n T2(n)=nlog n T3 (n)=n2 T4 (n)=n3 T5(n)=2n
– O tempo de execução de uma algoritmo sobre uma entrada particular, é o número de operações
primitivas ou “passos” executados.
– O tamanho da entrada depende problema sendo estudado. Mas na maioria dos casos este é o
número de itens na entrada, por exemplo: o número total de bits.
Resumindo, em geral, quando observamos
tamanhos de entrada suficientemente grandes
para tornar a ordem de crescimento do tempo de
execução relevante para um algoritmo, nós
estamos estudando a eficiência assintótica de
um algoritmo.
OBS:
Q - Limite assintótico
apertado ou exato
Eg.
Q - Limite assintótico apertado
ou exato
Eg.
O - Limite assintótico superior
O - Limite assintótico superior
Qual melhor algoritmo?
Definição do Big-Oh
Ordens mais comuns
2n
(exponencial) n2
(quadrática)
n log n
n (linear)
log n (logarítmica)
1 (constante)
n
5n 3n
3 3
5n 3n
lim 2
lim 2 lim 2
n n n n n n
Regra de L’Hopital
Se f(x) e g(x) são ambas funções diferenciáveis
com derivadas f’(x) e g’(x), respectivamente, e
se
f ( x) f ' ( x)
lim lim
x g ( x ) x g ' ( x )
lg n O (n )
ln n ln n 1
lg n (lg n)' '=
ln 2 ln 2 nln2
lg n (lg n)' 1
lim lim lim 0
n n n n' n n ln 2
Exemplo usando limites
n k O (2n )
onde k é uma constante inteira positiva
2 n e n ln 2
n
( 2 )' (e n ln 2
)'= ln2 e n ln 2
n
2 ln 2
-
nk kn k 1
lim n lim n
n 2 n 2 ln 2
k -2
-
k ( k 1)n k!
lim n 2
... lim n k 0
n 2 ln 2 n 2 ln 2