Algoritmos e Estruturas de Dados
description
Transcript of Algoritmos e Estruturas de Dados
Algoritmos e Estruturas de Dados
Apresentação do Curso
Setembro/2005
Professora: Liliane Rose Benning Salgado. E-mail: [email protected]
Equipe de apoio (monitores):
Eliaquim Lima Sá Neto ([email protected])Igor Cavalcanti Ramos ([email protected])José Francisco Pereira ([email protected])Marcondes Junior ([email protected])Nitai Bezerra da Silva ([email protected])Tiago Lins Falcão ([email protected])
Página da disciplina:http://petrolina.cin.ufpe.br/~if672/2005.2/
Conteúdo Programático
• Array e listas.
• Disciplinas de Pilha e Fila.
• Árvores de Busca Binária.
• Árvores AVL. Rotações simples e dupla.
• Árvores 2-3 e Árvores-B.
• Criação de Heaps. Inserção e Remoção.
• Hashing
Conteúdo Programático (continuação)
• Conjuntos
• Algoritmos de ordenação: mergesort, quicksort, heapsort.
• Algortimos em grafos.
• Programação Dinâmica.
• Backtracking.
Referências
• Baase, S. and Gelder, A. V. "Computer Algorithms - Introduction to Design and Analysis", Third Edition, Addison-Wesley, 2000.
• Manber, U. "Introduction to Algorithms: A Creative Approach", Addison-Wesley, 1989.
• Cormen, T. H.; Leiserson, C. E.; Rivest, R. L. and Stein, C. “Introduction to Algorithms”- Second Edition, MIT Press, 2001.
• Szwarcfiter, J. L. and Markenzon, L. “Estruturas de Dados e seus Algoritmos” – Segunda Edição Revista, LTC, 1994.
• Robert Sedgewick, "Algorithms in C", Third Edition, Addison-Wesley, 1998.
• Mark Allen Weiss, "Data Structures and Algorithm Analysis in Java", Peachpit Press, 1998.
Estruturação da Informação
Qualquer área da computação: algoritmos + estruturas de dados
Definição (algoritmo): processo sistemático para a resolução de um problema.
Aspectos Básicos
1. Correção: consiste em verificar a exatidão do método, o que é realizado através de uma prova matemática.2. Análise: visa à obtenção de parâmetros que possam avaliar a eficiência do algoritmo em termos do tempo de exe- cução e memória ocupada.
Entrada: informações inicialmente conhecidas e que permitem encontrar a solução do problema.
Saída: resultado do problema a partir de uma entrada.
Entrada SaídaManipulação
de Dados
Definição 2 (algoritmo): procedimento que transforma dados em informação.
Desenvolvimento de Programas(etapas constituintes)
1. Especificação do problema: entendimento das relações existentes entre os dados que são relevantes para o problema (estruturação lógica).
2. Projeto em alto nível: que transformações serão efetuadas no algoritmo para resolver o problema.
3. Análise de alternativas.
4. Refinamento e codificação: refinar o item 2 em termos dosmecanismos disponíveis na linguagem em que o programa será codificado.
5. Verificação de Comportamento: avaliar o programa obtido para vermos se satisfaz as especificações do problema e quantoao desempenho (tempo e memória), modoficando-o se for o ca-so.
Três pontos importantes
1. Estruturas de Dados – retrata as relações lógicas entreos dados (como um modelo matemático para a realidade do
Problema).
2. Operações – manipulam estas estruturas de dados e as transformam.
3. Estrutura de representação – precisamos armazenar os dados na memória do computador através de uma estruturade representação.
Programa: representação de um algoritmo que manipula representações de dados.
Conclusão
Escolha de estruturas de dados, suas operações (algoritmos)e representações podem ser fatores decisivos na eficiência
do programa final.