Ir para o conteúdo

CCT-UFCA/Ciência da Computação/Algoritmos e Estruturas de Dados

De Wikiversidade

Programa do Componente Curricular

[editar | editar código]
Código: CC0061
Componente Curricular: Algoritmos e Estruturas de Dados
Semestre de Oferta: 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.

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]
  1. SZWARCFITER, J. L.; MARKEZON, L. Estruturas de Dados e seus Algoritmos. 3ª ed. LTC, 2010. 320p. ISBN-10 : 852161750X, ISBN-13 : 978-8521617501.
  2. 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.
  3. 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]
  1. SEDGEWICK, R.; WAYNE, K. Algorithms. 4th ed. Addison-Wesley Professional, 2011. 992p. ISBN-10: 032157351X, ISBN-13: 978-0321573513.
  2. 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
  3. EDMONDS, J. Como Pensar sobre algoritmos. 1ªed. LTC, 2010, 300p. ISBN-10: 8521617313, ISBN-13: 978-8521617310.
  4. DASGUPTA, S.; PAPADIMITRIOU, C.; VAZIRANI, U. Algoritmos. 1ºed. McGraw Hill, 2009, 336p. ISBN-10: 8577260321, ISBN-13: 978-8577260324.
  5. DASGUPTA, S.; PAPADIMITRIOU, C.; VAZIRANI, U. Algorithms. 1ºed. McGraw Hill, 2006, 320p. ISBN-10: 9780073523408, ISBN-13: 978-0073523408