BCC241 - Projeto e Análise de Algoritmos - 2024-2Carga horária da disciplina: 4 horas/aula Professor(es) em 2024-2
ObjetivosAo final do curso espera-se que os alunos possuam os seguintes conhecimentos e habilidades:Capacidade para fazer análise de pior e melhor caso do tempo de execução de algoritmos típicos, como algoritmos de ordenação e pesquisa, algoritmos clássicos sobre grafos, etc; Compreensão sobre o significado da notação usada para expressar ordem de complexidade de algoritmos; Compreensão do princípio básico de cada uma das técnicas de programação estudadas e dos casos aos quais elas se aplicam; Habilidade para implementação dos algoritmos estudados e para aplicação dos mesmos na solução de problemas práticos. EmentaMedidas de complexidade, análise assintótica de complexidade e notação Big O, Little o, Omega e Theta; análise de algoritmos iterativos e recursivos; medidas empíricas de performance; estratégias de projeto de algoritmos: divisão e conquista, método guloso, programação dinâmica, backtracking, branch and bound, probabilístico, aproximado; classes de complexidade: P, NP, NP-Completo e NP-Difícil.Conteúdo Programático- Medidas de complexidade, análise assintótica de complexidade e notação Big O, Little o, Omega e Theta.- Panorama e Conceitos Básicos. - Medidas de Complexidade (tempo, espaço) - Análise Assintótica - Análise de Algoritmos Iterativos e Recursivos - Teorema Mestre - Medidas Empíricas de Performance - Estratégias de projeto de algoritmos - Divisão e conquista: MergeSort, Medianas, QuickSort e Exponencial - Método guloso: Conceitos, Árvores Geradoras Mínimas - Prim & Kruskal, Código de Huffman, Cláusula de Horn, Problema da Mochila e Seleção de atividades - Programação dinâmica: Conceitos, Maior Sequência Crescente, Distância de Edição, Problema da Mochila e Multiplicação de Cadeia de Matrizes - Backtracking - Branch and bound - Probabilístico - Aproximado - Classes de complexidade - Problemas de Busca - Decisão e Otimização, - Classe P - Classe NP - Classe NP-Completo - NP-Difícil - Redução de problemas Bibliografia- DASGUPTA, Sanjoy; PAPADIMITRIOU, Christos H.; VAZIRANI, Umesh Virkumar. Algoritmos. São Paulo: McGraw-Hill, 2009.- CORMEN, Thomas; LEISERSON, Charles; RIVEST, Ronald; STEIN, Clifford. Algoritmos: Teoria e Prática. 2. ed. Rio de Janeiro: Campus, 2002. - SEDGEWICK, Robert; WAYNE, Kevin. Algorithms. 4. ed. Upper Saddle River: Addison Wesley, 2011. Bibliografia complementar- HOROWITZ, Ellis; SAHNI, Sartaj. Fundamentals of computer algorithms. New-Delhi: Galgotia, 1990. ((Computer software engineering series)).- ZIVIANI, Nivio; BOTELHO, Fabiano Cupertino. Projeto de algoritmos: com implementações em Java e C++. 1 ed. São Paulo: Cengage Learning, 2006. - GOODRICH, Michael T.; TAMASSIA, Roberto; COPSTEIN, Bernardo. Projeto de algoritmos: fundamentos, análise e exemplos da internet. Porto Alegre: Bookman, 2004. - KNUTH, Donald Ervin. The art of computer programming. Upper Saddle River: Addison Wesley, 2005. - WIRTH, Niklaus. Algoritmos e estruturas de dados. Livros Técnicos e Científicos, 1999. |
Departamento de Computação | ICEB | Universidade Federal de Ouro Preto
Campus Universitário Morro do Cruzeiro | CEP 35400-000 | Ouro Preto - MG, Brasil
Telefone: +55 31 3559-1692 | decom@ufop.edu.br