DC-UFRPE/Licenciatura Plena em Computação/Algoritmos e Estruturas de Dados
Programa da Disciplina
[editar | editar código-fonte]Nome: | Algoritmos e Estruturas de Dados |
Código: | 06214 |
Departamento: | Departamento de Computação (DC) |
Área: | Computação |
Carga-horária total: | 60 horas |
Créditos: | 4 |
Pré-requisitos: | PROGRAMAÇÃO I (Cód. 14083)
MATEMÁTICA DISCRETA I (Cód. 14203) |
Ementa
[editar | editar código-fonte]Análise de Algoritmos: Notação O e Análise Assintótica. Algoritmos para pesquisa e ordenação em memória principal e secundária. Organização de arquivos. Técnicas de recuperação de informação. Listas lineares e suas generalizações: listas ordenadas, listas encadeadas, pilhas e filas. Aplicações de listas. Árvores e suas generalizações: árvores binárias, árvores de busca, árvores balanceadas (AVL), Árvores B e B+. Aplicações de árvores.
Objetivos
[editar | editar código-fonte]- Introduzir os conceitos das principais estruturas de dados computacionais;
- Introduzir conceitos como análise algorítmica, ordenação de dados, recuperação de informação e classes de complexidade algorítmicas;
- Capacitar o aluno ao desenvolvimento de programas computacionais para a resolução de problemas que envolvam os principais tipos de estruturas de dados;
- Capacitar o aluno ao desenvolvimento de sistemas computacionais que façam uso de estruturas de dados complexas.
Apresentação da disciplina
[editar | editar código-fonte]Na disciplina de Algoritmos e Estruturas de dados o aluno aprende a manipular estruturas clássicas usadas para o armazenamento e representação de dados em computadores.
- Algoritmos de ordenação como Mergesort, Quicksort, Heapsort.
- A diferença entre Lista, Pilha e Fila, bem como a cria-las e manipula-las.
- Árvore Binária e Árvore AVL.
- Tabela HASH
- Grafos para Busca em Largura e Busca em Profundidade.
- Programação Dinâmica.
Conteúdo Programático
[editar | editar código-fonte]A disciplina é construída de duas formas:
- Parte Teórica: Estudo do funcionamento de cada estrutura que será abordada na disciplina, análise da complexidade de tais estruturas.
- Parte Prática: Desenvolvimento, com o auxílio de uma linguagem de programação, de algoritmos para a implementação das técnicas vistas na parte teórica, assim como modificações propostas sobre as mesmas.
Bibliografia
[editar | editar código-fonte]Bibliografia Básica
[editar | editar código-fonte]CORMEN, Thomas H. et. al. Algoritmos: Teoria e Prática. Editora Campus, 2012.
FEOFILOFF, Paulo. Algoritmos em Linguagem C. Editora Campus/Elsevier, 2008-2009.
ZIVIANI, Nivio. Projeto de Algoritmos: com implementações em Pascal e C. 2. ed. rev. e ampl. São Paulo: Thomson, 2005.
Bibliografia Complementar
[editar | editar código-fonte]MANBER,Udi.IntroductiontoAlgorithms:ACreativeApproach.AddisonWesley,1989.
FARRER,Harry;BECKER,ChristianoGonçalves;FARIA,EduardoChavesetal.AlgoritmosEstruturados.3aed.RiodeJaneiro:LTC,1999.
FORBELLONE,AndréL.V.Ebesrpacher,HenriF.Lógicadeprogramação-aconstruçãodealgoritmoseestruturasdedados,2aed.SãoPaulo:MakronBooks,2000
SZWARCFITER,J.EstruturasdeDadoseseusAlgoritmos.RiodeJaneiro:LTC,1994.
KRUSE,RobertL;RYBA,AlexanderJ.DataStructuresandProgramDesigninC++.PrenticeHall,1999.
BHARGAVA, A. Y. Entendendo Algoritmos: um guia ilustrado para programadores e outros curiosos. São Paulo, SP: Novatec, 2017.