CCT-UFCA/Ciência da Computação/Algoritmos e Estruturas de Dados
Programa do Componente Curricular
[editar | editar código]| Código: | CC0061 | ||||||||
| Componente Curricular: | Algoritmos e Estruturas de Dados | ||||||||
| Semestre de Oferta: | 2º | Tipo: | Disciplina | Caráter: | Obrigatória | ||||
| Unidade Acadêmica Responsável: | Centro de Ciências e Tecnologia - CCT | ||||||||
| Área: | Teoria da Computação | ||||||||
| Créditos: | 6 | Carga horária: | 96 | Teórica: | 96 | Prática | 0 | Extensão: | - |
| Pré-requisito: | CC0001 - Introdução à Programação e CC0005 - Fundamentos de Matemática Discreta | ||||||||
| Co-requisito: | |||||||||
| Equivalência: | (CC0006 ou MC0008) e (CC0012 ou MC0013) | ||||||||
Objetivos
[editar | editar código]Introduzir noções básicas de complexidade de algoritmos e técnicas básicas para comparação dos tempos de execução dos algoritmos estudados. Introdução a algoritmos de ordenação. Apresentar as diversas estruturas de dados fundamentais, como estruturas lineares com alocação sequencial e dinâmica (vetores, listas encadeadas, pilhas, filas, etc.); estruturas não-lineares (árvores binárias de busca), os algoritmos básicos para a sua manipulação.
Apresentar estruturas de árvores balanceadas (AVL, rubro-negra), e listas de prioridades (heaps). Apresentar conceitos e algoritmos de estruturas de dados em armazenamento secundário (Árvores B e Árvores B+) e tabelas de dispersão. Apresentar a importância da escolha da estrutura de dados e algoritmos adequados para a resolução de problemas de maneira eficiente.
Ementa
[editar | editar código]Tipos abstratos de dados. Noções de análise de complexidade de algoritmos. Algoritmos de ordenação. Estruturas de dados simples: listas, filas e pilhas. Estruturas de dados avançadas e seus algoritmos: árvores binárias de busca; árvores binárias de busca balanceadas (AVL e rubro-negras); heaps e heapsort; árvores B e B+; tabelas de dispersão.
Conteúdo
[editar | editar código]Metodologia
[editar | editar código]Avaliação
[editar | editar código]Bibliografia básica
[editar | editar código]- SZWARCFITER, J. L.; MARKEZON, L. Estruturas de Dados e seus Algoritmos. 3ª ed. LTC, 2010. 320p. ISBN-10 : 852161750X, ISBN-13 : 978-8521617501.
- CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L.; STEIN, C. Algoritmos: teoria e prática. 3ª ed. LTC, 2012. 944p. ISBN-10 : 8535236996, ISBN-13 : 978-8535236996.
- Ziviani, N. Projeto de algoritmos: com implementações em Java e C++. 1ª ed. Cengage Learning, 2006. 644p. ISBN-10 : 8522105251, ISBN-13 : 978-8522105250.
Bibliografia complementar
[editar | editar código]- SEDGEWICK, R.; WAYNE, K. Algorithms. 4th ed. Addison-Wesley Professional, 2011. 992p. ISBN-10: 032157351X, ISBN-13: 978-0321573513.
- CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L.; STEIN, C. Introduction to Algorithms. 3rd ed. The MIT Press, 2009, 1292p. ISBN-10: 9780262033848, ISBN-13: 978-0262033848
- EDMONDS, J. Como Pensar sobre algoritmos. 1ªed. LTC, 2010, 300p. ISBN-10: 8521617313, ISBN-13: 978-8521617310.
- DASGUPTA, S.; PAPADIMITRIOU, C.; VAZIRANI, U. Algoritmos. 1ºed. McGraw Hill, 2009, 336p. ISBN-10: 8577260321, ISBN-13: 978-8577260324.
- DASGUPTA, S.; PAPADIMITRIOU, C.; VAZIRANI, U. Algorithms. 1ºed. McGraw Hill, 2006, 320p. ISBN-10: 9780073523408, ISBN-13: 978-0073523408