Académique Documents
Professionnel Documents
Culture Documents
Carla Osthoff
Sala 2C-11 ramal: 6108
osthoff@lncc.br
EMENTA
Complexidade computacional
Algoritmos de Busca:
Grafos:
-Caminhos mnimos,
binrias de
Ementa
Ordenao:
Ementa
Programao dinmica
Sistemas de Equaes Algbricas Lineares
Nmeros aleatrios
Fundamentos matemtico:
induo e recurso.
Anlise assinttica
Bibliografia
1 ) Estruturas de dados e algoritmos.
Bruno R. Preiss. Elsevier.
2) Estrutura de dados e seus Algoritmos,
Jayme Luiz Szwarcfiter
3) Algoritmos. Sanjoy Dasgupta, Christos
Papadimitriu, Umesh Vazirani. MacGraw
Hill
5
Bibliografia
4) Foundations of Computer Science- Aho, A.V
5) Algoritmos Numricos.
Frederico Ferreira Campos
6)Algoritmos. Thomas Cormen, Charles
Leiserson, Ronald Rivest, Clinford Stein,
Editora Campus
Algoritmo
um processo sistemtico para a resoluo de um
problema.
Aspectos bsicos no estudo de algoritmos
Correo: verificar a exatido do mtodo
Algoritmo
Computa uma sada a partir de uma entrada (dados)
A escolha correta da estrutura de dados para cada caso
Nmeros de Fibonacci
0,1,1,2,3,5,8,13,21,34
se n> 1
se n=1
se n=0
Crescem quase to
rapidamente quanto a potncia
de 2
F30 mais que um milho
F100 tem 21 dgitos
0,694n
Fn ~ 2
Crescem quase to
rapidamente quanto a potncia
de 2
F30 mais que um milho
F100 tem 21 dgitos
0,694n
Fn ~ 2
Um algoritmo fib1
Funo fib1 (n)
se n=0 : retorna 0
se n=1 : retorna 1
Retorna fib1(n-1) + fib (n-2)
T(n) >= Fn
O tempo de execuo do algoritmo cresce
to rapidamente quanto os prprios nmeros
de Fibonacci.
138
Desempenho computacional
ordem de gradeza |
flops/s
Megaflops/s
Gigaflops/s
Teraflops/s
Petaflops/s
Exaflops/s
10 ** 6
10** 9
10** 12
10** 15
10** 18
Tanhe-2
48 petaflops/s
Algoritmo correto
Ineficiente !
Algoritmo Polinomial
Funo fib2 (n)
Se n=0 : retorna 0
crie um vetor f [0....n]
F[0] = 0, F[1] = 1
para i= 2,....,n:
F[i] = F[i-1] + F [i 2]
retorna F[n]
Exerccio 04 pg. 9
Livro Algoritmos do Sanjoy
A notao O
A notao O
Por simplificao, em vez de reportar que
um algoritmo toma 5n**3 + 4n+3 passos
mais fcil deixar de fora termos de menor
ordem e as constantes para dizer que o
algoritmo toma o tempo O(n**3).
F2 = O(f1)
F3 (n)= n + 1
A discrepncia entre 2n+20 e n+1 mnima
comparada ao enorme vo entre n**2 e
2n+20.
Tratamos funes como equivalentes se
elas diferem apenas por constantes
multiplicativas