description |
---|
Gitbook criado para fazer minhas anotações sobre a disciplina de Projeto e Análise de Algoritmos que estou cursando no 4º semestre de Ciência da Computação na UFMS. |
Desenvolver nos estudantes a capacidade de avaliar a complexidade e a qualidade dos algoritmos propostos para diversos problemas computacionais.
Estudar os algoritmos básicos para as classes mais importantes de problemas tratados em Computação.
Compreender a importância da implementação e a sensibilidade do comportamento dos algoritmos levando em consideração parâmetros importantes tais como tempo de execução, memória usada, comunicação entre processos, etc.
Conhecer as potencialidades e as limitações do conhecimento algorítmico atual.
Apresentar as tendências da pesquisa na área de algoritmos.
Introdução à Análise de Algoritmos
- Crescimento e Notação Assintótica de Funções
- Indução, Recorrências, Demonstração de Correção de Algoritmos.
Técnicas de Desenvolvimento de Algoritmos:
- Divisão e Conquista
- Método Guloso
- Programação Dinâmica.
- As classes P e NP. NP-completude e Reduções.
- Papel dos algoritmos em Computação
- Preliminares
- Crescimento de funções
- Divisão e conquista
- Heapsort
- Quicksort
- Ordenação em tempo linear
- Medianas e k-ésimo menor elemento
- Programação dinâmica
- Algoritmos gulosos
- Algoritmos em grafos
- Complexidade de problemas, NP-completude e redução polinomial
- T. H. Cormen, C. E. Leiserson, R. L. Rivest e C. Stein, Introduction to Algorithms, 3a. ed., MIT Press, 2009
- P. Feofiloff. Minicurso de Análise de Algoritmos, http://www.ime.usp.br/∼pf/livrinho-AA/AA-BOOKLET.pdf, 2011
- J. Kleinberg e E. Tardos, Algorithms Design, Addison-Wesley, 2006
-
- U. Manber, Algorithms: A Creative Approach, Addison-Wesley, 1989
- R. Sedgewick, Algorithms, Addison-Wesley, 2004
Conteúdo tirado dos slides do professor da disciplina Fábio Henrique Viduani Martinez - FACOM/UFMS; Todos os créditos reservados a ele.