Escolar Documentos
Profissional Documentos
Cultura Documentos
Anlise de Algoritmos
Conceitos bsicos
www.laps.ufpa.br/nelson
Algoritmos
1 para j = 2 at n faa
...
4 i = j1
5 enquanto i 1 e A[ i ] > chave faa
6 ...
7 i = i1
8 ...
T (n) = c1 + c2 n + c3 (n 1) + c4 (n 1) + c5
T (n) = c1 + c2 + c4 + c5 + c6
T (n) = c1 + c2 (n + 1) + c3 n + c4 + c5 + c6
SORT (A, n)
1 para i = 1 at n - 1 faa
2 para j = 1 at n - i faa
3 se A [ j ] > A [ j + 1 ] ento
4 temp = A [ j ]
5 A[j] =A[j+1]
6 A [ j + 1 ] = temp
Mtodo de ordenao Bubblesort
Mtodo de ordenao Bubblesort
Comparando algoritmos
400 n2 + 2n + 1
5n + 20
Quantidade de instrucoes executadas
350
300
250
200
150
100
50
0
0 2 4 6 8 10 12 14 16 18 20
Quantidade de elementos no vetor de entrada
Exemplo
300
n2 + 2n + 1
250
2n
Quantidade de instrucoes executadas
200
150
100
50
0
0 1 2 3 4 5 6 7 8
Tamanho da entrada (n)
Exemplo
3000
n2 + 2n + 1
2500
n2
Quantidade de instrucoes executadas
2000
1500
1000
500
0
0 5 10 15 20 25 30 35 40 45 50
Tamanho da entrada (n)
Comportamento assinttico
Salvo contrrio, considera-se o pior caso, assim como o comportamento
assinttico dos algoritmos (instncias de tamanho grande).
n 4n + 52 4n
64 308 256
512 2100 2048
2048 8244 8192
4096 16436 16384
8192 32820 32768
16384 65588 65536
32768 131124 131072
Comportamento assinttico
De um modo geral, podemos nos concentrar nos termos dominantes e
esquecer os demais.
Concluses
Ex: n , 7n 3 , 14n2 + 4n - 8 , n5
Exerccios
4000
10n2
2n
Quantidade de instrucoes executadas
3500
3000
2500
2000
1500
1000
500
0
0 2 4 6 8 10 12
Tamanho da entrada (n)
Exerccio 2
PRIMO ( i )
j=2
j=j+1
fim
se i = j
fim
Tempo de execuo (seg)
Exerccio 2
Valor de entrada
Exerccio 3
f(n) = c1(n) + c2 (n 1) + c4 (n 1) + c5 (n 1) + c8 (n 1)
2 + 3 + 4 + 5 + ... + n =