MC438 - Análise de Algoritmos I
Of.: S-5 T:04 L:00 HS:04 SL:04 C:04
Pre-Req.: MC202
Ementa:
Conceitos básicos de matemática discreta. Noções básicas de projeto e análise de algoritmos. Algoritmos para ordenação e grafos.
Programa:
- Conceitos básicos de matemática discreta
- Revisão da noções básicas de Teoria dos conjuntos. Seuqência e tuplas. Funções e relações
- Funções inteiras: mod, piso e teto
- Crescimento de funções e notação assintótica. Somatórias
- Relações de recorrência
- Noções básicas de contagem e probabilidade
- Noções básicas de grafos: nomenclatura, classes, representação
- Técinicas básicas de demosntração
- Noções básicas de análise e projeto de algoritmos
- Noções básicas: o que é um algoritmo; o que significa projetar um algoritmo, e o que é análise de um algoritmo. Ênfase: corretude. O modelo RAM
- Técnica de projeto: indução
- Técnica de projeto: divisão e conquista
- Técnica de projeto: gula
- Técnica de projeto: busca exaustiva
- Algoritmos para ordenação e grafos
- Revisão dos algoritmos principais para ordenação: Inserção, Seleção, Mergesort e Quicksort
- Árvore binária de decisão e limite inferior para ordenação com comparações
- Algoritmos lineares para ordenação
- Caso médio dos algoritmos de ordenação
- Algoritmos para o k-ésimo, incluindo algoritmo linear
- Algoritmos para percursos em grafos: largura e profundidade. Aplicações: conexidade, ordenação topológica
- Algoritmos para árvore espalhada mínima
- Algoritmos para caminhos mais curtos: a partir de um vértice e entre todos os pares de vértices. Fecho transitivo
Bibliografia:
G. Brassard e P. Bratley, Fundamental of Algorithmics, Prentice-Hall, 1995
T. Cormen, C.Leiserson e R. Rivest, Introduction to Algorithms, MIT Press, 1990
U. Manber, Introduction to Algorithms, Addison-Wesley, 1989