Professional Documents
Culture Documents
Algoritmos
DAS 5102 Fundamentos da Estrutura da Informao
Prof. Dr. rer. nat. Daniel D. Abdala
abdala@das.ufsc.br
Objetivos
Introduzir
o conceito de anlise
de algoritmos;
Introduzir o conceito de
complexidade assinttica;
Explicar via exemplos como
medir a complexidade de
algoritmos;
Explicar o conceito de
complexidade mdia de melhor e
de pior caso.
Plano de Aula
Algoritmos
Anlise
de Algoritmos
Conceitos Bsicos
Complexidade no Tempo e no
Espao
Notao Assinttica
Conceitos Bsicos
Algoritmos
Algoritmo
Ferramenta para
resoluo de problemas.
Problemas so descritos via:
Uma descrio de todos os seus
parmetros de entrada (INPUT)
Um enunciado sobre que
propriedades a soluo deve
satisfazer
Conceitos Bsicos
Algoritmos
computadores
PC (106 instr/s)
SC (108 instr/s)
Dois
algoritmos de ordenao
2 (10 ) instr
20 103 s 5.56horas
8
10 instr / s
6 2
Anlise de Algoritmos
Anlise
Complexidade no Tempo e no
Espao (N)
Espacial
Complexidade no Tempo e no
Espao (N)
Temporal
Exemplo: Ordenao de
Inteiros
Exemplo: Ordenao de
Inteiros
Exemplo: Ordenao de
Inteiros
Exemplo: Ordenao de
Inteiros
Consideraes
Sempre
Notao Assinttica
Tambm
(diz-se big O)
Definio:
Classes de Complexidade
Designao
Constante
Logartmica
Logartmica
quadrtica
Linear
N log N
Quadrtica
Cbica
Exponencial
Funo
c
log N
log2N
N
N log N
N2
N3
2N
Exemplo: Tempo de
execuo
Considere
Exemplo: Tempo de
execuo
N
A1
T1(n) = n
0.001s
A2
T2(n) = n
log n
0.016
16
0.016s
32
512
A3
T3(n)=n2
A4
T4(n)= n3
A5
T(n)=2n
0.064s
0.256s
4s
0.064s
0.256s
4s
1m4s
0.032s
0.16s
1.0s
33s
0.512s
9.0s
4m22s
1dia13h
46 dias
10137
sculos
Exemplo
Entrada
: nmero N
Sada : nmero r representando a
soma dos N primeiros inteiros.
Exemplo: Fibonacci
A
Implementao recursiva
(exponencial):
Exemplo: Fibonacci
1. O algoritmo correto?
2. Quanto tempo ele leva em funo da entrada N?
3. O problema pode ser resolvido de uma maneira
melhor?
(1)
que
Exemplo: Fibonacci
Quo
demorada a execuo do
algoritmo?
Fn 20,694n
F200 > T(200) F200 2138 passos
computacionais
SC > 40.1012 passos computacionais /
segundo
fib1(200) @ SC = 292 segundos
(3)
Exemplo: Fibonacci
Chamadas recursivas de
fib1(n)
Pontos Chave
Algoritmos
Para o Lar
ltima
Bibliografia
S.
Dasgupta, C. H. Papadimitriou, U. V.
Vazirani. Algorithms, Chap. 0;
R. Sedgewick, Addison-Wesley. Algorithms in
C, Parts 1-4: Fundamentals, Data Structures,
Sorting, Searching, 3rd edition, 1997.