Você está na página 1de 3

Estruturas de Dados e Algoritmos

O que veremos nesta aula?


A relevncia da eficincia dos algoritmos

Notao e Anlise
Assinttica

Formalizao da notao assinttica

Dalton Serey
Departamento de Sistemas e Computao
Universidade Federal de Campina Grande

Anlise assinttica de algoritmos

Dalton Serey DSC/UFCG

Dalton Serey DSC/UFCG

Pra que algoritmos eficientes?

Por que fazer algoritmos eficientes?

 Se o algoritmo vai ser usado para pequenos

 Suponha que voc tenha no mximo 1000s para

problemas e por pequenos usurios... no h


porque se preocupar com eficincia.

resolver certo problema... (+/-17 minutos)

 Qual o maior problema que podemos resolver


nesse tempo se o algoritmo T(n)?

 Se o algoritmo vai ser usado para resolver

T(n)
100n
5n^2
0.5n^3
2^n

grandes problemas, certamente ser usado por


grandes usurios! Nesse caso, d pra resolver o
problema da eficincia comprando hardware
mais rpido...

1.000s
10
14
12
10

Dalton Serey DSC/UFCG

Dalton Serey DSC/UFCG

Por que fazer algoritmos eficientes?

Por que fazer algoritmos eficientes?

 Podemos tratar problemas maiores se usarmos um

 Eis a tabela com os dados

 Por exemplo, qual passar a ser o maior problema

T(n)
100n
5n^2
0.5n^3
2^n

hardware mais rpido?

se usarmos uma mquina 10 vezes mais rpida?

 Certamente, a mquina mais lenta resolveria o


mesmo problema em 10x o tempo disponvel

 em nosso exemplo, isso d 10.000 segundos

Dalton Serey DSC/UFCG

1.000s
10
14
12
10

10.000s
100
45
27
13

 
          
   "!$#%    &  
'  () *!+#+%, - +./ 0 1& 2
Dalton Serey DSC/UFCG

Por que fazer algoritmos eficientes?

Vejamos mais dados...

3 Que ganho tivemos com a mudana?

3 Tempos para problemas de vrios tamanhos...

T(n)
100n
5n^2
0.5n^3
2^n

1.000s
10
14
12
10

10.000s
100
45
27
13

T(n)
1000 log n
100 n
5n^2
n^4/100
2^n/1000

Ganho
10.0
3.2
2.3
1.3

457689:57;<=> 8? @5BA/C D >5


<:E&F&5G&<G&6C 8? HI5@8GJ57K;<
LIMIN F&8&A 8*=>8><? J&5AOC 8G&8
5
A ;<>P;<7Q MIMMIN ;<J:R ST T T

10
3322
1000
500
100
1

25
4644
2500
3125
3906
33554

50
75
100
1000
10000
5644
6229
6644
9966
13288
5000
7500
10000 100000 1000000
12500 28125 50000 5000000 ###
62500 316406 1000000 ###
###
1.1E+12 3.8E+19 1.3E+27 1.1E+298
-

3 Assuma que cada unidade de tempo na tabela


acima corresponde a um milissegundo...

Dalton Serey DSC/UFCG

Mais argumentos...

Notao Assinttica

3 Os tempos no so nada animadores...


T(n)
1000 log n
100 n
5n^2
n^4/100
2^n/1000

10.0
3.3
1.0
0.5
0.1
0

25.0
4.6
2.5
3.1
3.9
34

50.0
60.0
100
5.6
5.9
6.6
5.0
6.0
10.0
12.5
18.0
50.0
10m25s 21m36s 2h46m
>35anos >300sc

Dalton Serey DSC/UFCG

3 Definimos O(g(n)) como o conjunto das funes

1000
10000
10.0
13.3
1m40s 16m40s
1h23m >3anos
>3anos >300sc

assintoticamente limitadas por g(n). Formalmente,

O g n U

f n : W c , n 0 X 0 : 0 Y f n Y cg n , Z n [ n 0 \

3 Usada para indicar limites assintticos superiores.


3 Observe que na prtica, escrevemos

f(n) = O(g(n))
para denotar que f(n) pertence a O(g(n))

Dalton Serey DSC/UFCG

Dalton Serey DSC/UFCG

Notao Assinttica

Notao Assinttica

3 Exemplos positivos:
] 5n + 2 = O(n), pois 5n + 2 <= n, para n > 0
] n = O(5n + 2), pois n <= (5n + 2)/5, para n > 0
] 3n2 + 5n = O(n2), pois 3n2 + 5n <= 3n2, para n > 5

3 Para encontrar c e n , devemos encontrar solues


0

3 Exemplos negativos:
] 3n2 + 5n no O(n), pois no h constantes positivas
c e n0 tais que 3n2 + 5n <= cn, a partir de n0

para a inequao obtida da definio...

3 Por exemplo,
] 3n2 + 5n <= cn2, para valores de n > n0
] pelos mtodos convencionais, podemos verificar que
as solues para a inequao so tais que
n >= 5/(c-3), para valores de c > 3

] logo, uma soluo c = 4 e n0 = 5

3 Exerccio: prove o ltimo resultado!

Dalton Serey DSC/UFCG

Dalton Serey DSC/UFCG

Notao Assinttica

Notao Assinttica

^ Se no houver solues, ento f(n) no O(g(n)).

^ Definimos j

^ Por exemplo, no h soluo para


_ 3n2 + 5n <= cn, para valores de n > n0
_ para se convencer disso, perceba que a derivada de

g n acb f n : d c , n 0 e 0 : 0 f cg n f f n , g n h n 0 i

^ Usada para indicar limites assintticos inferiores

3n2 + 5n cn sempre positiva na faixa de valores


permitida...

^ a definio complementar de O(g(n)).


^ Exemplo: 3n 2 k 5n l j n 2

_ logo, no possvel que 3n2 + 5n cn <= 0, que


equivalente inequao dada...

g n como o conjunto das funes


inferiormente limitadas por g(n). Formalmente,

Portanto, 3n2 + 5n no O(n)!


Dalton Serey DSC/UFCG

Notao Assinttica
m Definimos n

g n como o conjunto das funes


para as quais g(n) tanto limite superior quanto
limite inferior. Formalmente,

g n

pcq f n : f n p O g n e f n psr

g n

m usada para indicar limites assintticos estritos.


m Por exemplo, 2 k
3n 5n lvu n 2
Dalton Serey DSC/UFCG

Dalton Serey DSC/UFCG

Você também pode gostar