100 likes | 258 Views
Algoritmos e Estruturas de Dados. Apresentação do Curso Setembro/2005. Professora: Liliane Rose Benning Salgado. E-mail: liliane@cin.ufpe.br Equipe de apoio (monitores): Eliaquim Lima Sá Neto (elsn@cin.ufpe.br) Igor Cavalcanti Ramos (icr2@cin.ufpe.br)
E N D
Algoritmos e Estruturas de Dados Apresentação do Curso Setembro/2005
Professora: Liliane Rose Benning Salgado. E-mail: liliane@cin.ufpe.br Equipe de apoio (monitores): Eliaquim Lima Sá Neto (elsn@cin.ufpe.br) Igor Cavalcanti Ramos (icr2@cin.ufpe.br) José Francisco Pereira (jfp@cin.ufpe.br) Marcondes Junior (mrsj@cin.ufpe.br) Nitai Bezerra da Silva (nbs@cin.ufpe.br) Tiago Lins Falcão (tlf@cin.ufpe.br) 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 • Correção: consiste em verificar a exatidão do método, o que é • realizado através de uma prova matemática. • 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. Manipulação Entrada Saída de Dados Definição 2 (algoritmo): procedimento que transforma dados em informação.
Desenvolvimento de Programas(etapas constituintes) • 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 dos • mecanismos 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 quanto ao desempenho (tempo e memória), modoficando-o se for o ca- so. • Três pontos importantes • Estruturas de Dados – retrata as relações lógicas entre • os dados (como um modelo matemático para a realidade do • Problema). • 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 estrutura de 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.