Algoritmos
Conceitos básicos: algoritmos, modelos de computação, computabilidade, complexidade.
Análise de algoritmos: recorrências, crescimento assintótico de funções.
Ordenação: limites inferiores, algoritmos ótimos, heaps, priority queues.
Algoritmos em grafos: busca em largura e em profundidade, conectividade, componentes conexas, árvores geradoras.
Algoritmos em matemática: polinômios, FFT, aritmética modular, testes de primalidade, criptografia RSA.
Algoritmos geométricos: fecho convexo, localização de pontos, interseção de segmentos, par mais próximo, círculo mínimo, triangulação de polígonos, triangulação de pontos. Problemas NP-completos.
Referência:
THOMAS H. CORMEN, CHARLES E. LEISERSON, RONALD L. – Introduction to Algorithms, Third Edition. Rivest and Clifford Stein MIT Press, 2009 ISBN-10: 0-262-03384-4 ISBN-13: 978-0-262-03384-8.
* Ementa básica. O professor tem autonomia para efetuar qualquer alteração.