Objetivos: A disciplina tem por objetivo: rever algoritmos clássicos, fazer a análise do seu desempenho e desenvolver a capacidade de classificar problemas computacionais e algoritmos de acordo com a sua complexidade.
Justificativa: O projeto de algoritmos é uma atividade fundamental na computação e a análise é parte indispensável nesse projeto.
Conteúdo: 1) Notação assintótica. 2) Recorrências. 3) Mergesort. 4) Quicksort. 5) Filas de prioridade e heapsort. 6) Ordenação em tempo linear. 7) Programação dinâmica. 8) Algoritmos elementares para grafos. 9) Árvore geradora mínima. 10) Caminhos mínimos. 11) Complexidade computacional.
Bibliografia:
- T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein, Introduction to Algorithms, 2nd.ed., MIT Press & McGraw-Hill, 2001.
- T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein, Algoritmos: Teoria e Prática, Campus, 2002.
- J. Kleinberg and E. Tardos, Algorithm Desing, Addison-Wesley, 2006.
- A.V. Aho and J.D. Ullman, Foundations of Computer Science, Computer Science Press, 1992.
- G. Brassard and P. Bratley, Fundamentals of Algorithmics, Prentice Hall, 1996.
- U. Manber, Introduction to Algorithms: A Creative Approach, Addison-Wesley, 1989.
- Professor: Cristina Gomes Fernandes
- Professor: JUAN GUTIERREZ