1. Conteúdo Programático
Conceitos Básicos
Algoritmos na computação.
Recorrências
Complexidade
Métodos de Ordenação
Estruturas de Dados
Elementares (listas, pilhas, filas)
Tabelas hash
Árvores binárias
Árvores balanceadas: AVL e vermelho-preto
Estruturas svançadas: heaps, árvores digitais, árvore PATRICIA
Grafos
Algoritmos elementares
Caminhamentos
Busca de caminhos mais curtos
Fluxo em Redes
Cálculo do Fluxo Máximo
Algoritmo de Ford-Fulkerson
Tópicos avançados
Programação dinâmica
Algoritmos gulosos
Algoritmos para correspondência de cadeias
Problemas NP-completos
2. Bibliografia
Cormen, Thomas H.; Leisserson, Charles E.; Rivest, Ronald.
Algoritmos: Teoria e Prática. Rio de Janeiro: Campus 2002.
Tenembaum, A. M., Langsam Y., Augenstein, M. J., Estruturas
de Dados Usando C, Editora Makron Books, 1995.
Ziviani, N. Projeto de Algoritmos. Pioneira, 1986.
Pereira, S. L. Estruturas de Dados Fundamentais. Érica, 1996.
Wirth, N. Algoritmos e Estruturas de Dados. Rio de Janeiro:
Prentice-Hall, 1989.
Knuth, D. E. The Art of Computer Programming, Vol I.
Addison-Wesley, 1968.
Scwarcfiter, J. Grafos e Algoritmos Computacionais. Rio de
Janeiro: Campus, 1988.
Terada, R. Desenvolvimento de Algoritmos e Estruturas de
Dados. São Paulo: Makron Books, 1991.
Horowitz, Ellis, Fundamentos de Estruturas de Dados, Rio de
Janeiro : Campus, 1987.
Lafore, Robert, Algoritmos and Data Structures in JAVA,
Makron Books, 1998.
Main, Michael, Data structures & other objects using C++,
Addison-Wesley, 1997.
Tremblay, Jean-Paul, An introduction to data structures with
applications, 2 nd. ed., Auckland : McGraw-
Hill, 1984.
3. Introdução
Questões
Como representar estes problemas?
Como construir os algoritmos necessários?
Que estrutura de dados utilizar?