Algoritmos e Estruturas de Dados

10
Algoritmos e Estruturas de Dados Apresentação do Curso Setembro/2005

description

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]) - PowerPoint PPT Presentation

Transcript of Algoritmos e Estruturas de Dados

Page 1: Algoritmos e Estruturas de Dados

Algoritmos e Estruturas de Dados

Apresentação do Curso

Setembro/2005

Page 2: Algoritmos e Estruturas de Dados

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/

Page 3: Algoritmos e Estruturas de Dados

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

Page 4: Algoritmos e Estruturas de Dados

Conteúdo Programático (continuação)

• Conjuntos

• Algoritmos de ordenação: mergesort, quicksort, heapsort.

• Algortimos em grafos.

• Programação Dinâmica.

• Backtracking.

Page 5: Algoritmos e Estruturas de Dados

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.

Page 6: Algoritmos e Estruturas de Dados

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.

Page 7: Algoritmos e Estruturas de Dados

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.

Page 8: Algoritmos e Estruturas de Dados

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.

Page 9: Algoritmos e Estruturas de Dados

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.

Page 10: Algoritmos e Estruturas de Dados

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.