1 OBJETIVOS 2 HORÁRIO DE AULAS 3 PROGRAMA
|
|
- Gabriela Fontes Brezinski
- 6 Há anos
- Visualizações:
Transcrição
1 1 OBJETIVOS Curso de Especialização em Engenharia de Software Universidade Federal de Minas Gerais Departamento de Ciência da Computação Estruturas de Dados Fundamentais Professor Roberto da Silva Bigonha 15 de Junho de 2017 O objetivo da disciplina é apresentar as estruturas de dados básicas e seus algoritmos para o desenvolvimento de programas de computador e criar oportunidades para o uso de Java na implementação de tipos abstratos de dados e outras estruturas. Concluindo o curso, os alunos deverão ser capazes de construir programas modulares em Java, dominar as principais técnicas utilizadas na implementação de estruturas de dados básicas e de algoritmos de pesquisa. Eles ainda deverão ser capazes de efetuar análises simples da complexidade de algoritmos. 2 HORÁRIO DE AULAS Dias de Aulas: 20/6 e 21/624/05, 5/6, 6/6, 7/6, 13/6, 14/6, 19/6, Horário: 19:15-20:45 e 21:10-22:30 3 PROGRAMA 1. 24/05/2017, 19:15-20:45, 21:10-22:30 COMPLEXIDADE DE ALGORITMOS (170 min): Medidas do Custo de Execução: Tempo e Espaço. Notação O. Conceito de Pior, Melhor Caso e Caso Médio. Complexidade Assintótica. Classes de Complexidade. Técnicas de Análise de Algoritmos Recursivos e Não-Recursivos /06/2017, 19:15 - TIPO ABSTRATO DE DADOS (10 min): Conceituação. Gap Semântico. Extensibilidade de Tipo. DICIONÁRIOS (5min): Conceito. Implementação. TABELAS (45 min): Pesquisa Sequencial. Pesquisa Sequencial Rápida. Pequisa Binária. LISTAS LINEARES (110 min): Conceituação. Implementação com Arranjos e Apontadores. Nodo- Cabeça. Inversão de Lista. Caminhamento em Sentido Duplo. Listas com Cursores. Listas Circulares. Listas Duplamente Encadeadas. Inserção e Remoção /06/2017, 19:15 - ENTREGA DO TP I. TABELAS HASHING (90 min): Transformação de Chaves. Resoluções de Colisões: Listas de overflow, Hashing Linear, Rehashing. PILHA (15min): Conceituação. Implementação com Arranjos e com Apontadores. FILAS (20 min): Conceituação. Implementação com Arranjos e com Apontadores. Fila circular. ÁRVORES - parte I (45 min): Conceito de Árvores. Árvores Binárias /06/2017, 19:15 - ÁRVORES - parte II (90 min): Árvores Binárias Estendidas. Propriedades de Árvores Binárias. Caminhamentos em Árvore: Central, Pré-Ordem e Pós-Ordem. Caminhamentos Recursivos e Não-Recursivos. ÁRVORES - parte III (50 min): Caminhamento com iteradores. FILAS DE PRIORIDADES I (30 min): Heap. Árvore Binária Completa. 1
2 5. 13/06/2017, 19:15 - ENTREGA DO TP II. FILAS DE PRIORIDADES II (90 min): Implementação do Heap. PESQUISA DIGITAL (10 min): Árvore de Pesquisa Digital. Tries. ÁRVORES PATRICIA I (70 min): Conceituação. Patricia Binária: Pesquisa. Inserção. Remoção. Implementação de Patricia com chave de tamanho fixo /06/2017, 19:15 - ÁRVORES PATRICIA II (90 min): Implementação de Patricia Binária com chave de tamanho variável. Patricia M-Ária. ÁRVORES DE PESQUISA (80 min): Conceituação. Pesquisa. Inserção. Remoção de Nodos com no Máximo um Filho. Remoção de Qualquer Nodo /06/2017, 19:15 - ENTREGA DO TP III ÁRVORES AVL (170 min): Conceito. Teorema de AVL. Balanceamento. Pesquisa. Inserção. Remoção 8. 20/06/2017, 19:15 - ÁRVORES B (60 min): Conceituação. Pesquisa. Árvores B*. Árvores B+. Árvores 2-3. ÁRVORE SBB - parte I (110 min): Conceituação. Balanceamento. Pesquisa /06/2017, 19:15 - ÁRVORE SBB - parte II (90 min): Inserção. Remoção. 21:00 - PROVA FINAL (80 min) /06/2017, 19:15 - ENTREGA DO TP IV /06/2017, 19:15 - EXAME EXTRA 4 AVALIAÇÃO A apuração do aproveitamento será feita por pontos cumulativos, em uma escala de 0 (zero) a 100 (cem), distribuídos da seguinte forma: Prova Final: 30 pontos Trabalhos Práticos de Programação: 70 pontos Exame Extra: 15 pontos (acumulativos) e somente para aqueles que obtiverem de 50 a 59 pontos. Para aprovação, são obrigatórias a frequência de no mínimo a 75% das aulas e a obtenção de pelo menos 60 pontos. Não haverá provas suplementares ou de reposição. O cumprimento dos prazos de entrega dos trabalhos é essencial para o bom andamento do curso e deverá ser observado. Os prazos estabelecidos são rígidos e, por uma questão de justiça, não negociáveis individualmente. Os trabalhos entregues com atraso superior a 24 horas serão penalizados na nota. Pedidos de revisões da correção de trabalhos e provas deverão ser encaminhados por escrito e justificados. Os trabalhos práticos são INDIVIDUAIS. Cada aluno deverá desenvolver e documentar SOZINHO sua própria solução de forma a poder receber os pontos alocados a cada trabalho. A documentação é parte essencial de qualquer projeto de software e deve ser sucinta e objetiva. A documentação do trabalho deverá conter pelo menos os seguintes itens principais: 1. uma rápida descrição da arquitetura da solução implementada, onde deverá ser informado quais classes foram construídas e pacotes onde elas estão; 2
3 2. a descrição da interface de cada classe implementada. Caso a classe possua atributos públicos, a utilização dos mesmos deverá ser justificada. A implementação dos métodos e atributos por ventura pedidos no trabalho é obrigatória, porém o aluno pode adicionar a qualquer das classes pedidas os métodos que julgar necessários. 3. uma rápida descrição dos testes realizados para comprovar o correto funcionamento da aplicação. A saída impressa dos resultados obtidos, sempre que aplicável, é necessária; 4. a listagem do código fonte impressa. Na elaboração dos trabalhos, é importante que as estruturas de dados usadas sejam efetivamente implementadas pelo aluno. O uso de soluções prontas, como as ArrayList, Vector, pilhas, filas, árvores, tabelas hashing oferecidas pela biblioteca de classes de Java, para solução dos trabalhos práticos não é permitido. Afinal este é um curso para ensinar ao aluno implementar as estruturas de dados fundamentais e não apenas seu uso. O único produto que deve ser entregue como resultado dos trabalhos de implementação é a sua documentação impressa e a listagem dos programas e de seus resultados. Por favor, não envie ao professor documentação dos trabalhos em meios eletrônicos. Entregue-a diretamente ao professor na sala de aula ou na Secretaria do DCC (sala 5309, horário comercial). 5 TRABALHO PRÁTICO I (15 pontos) 5.1 Análise de Complexidade 1. Explique o significado das seguintes expressões: (a) f(n) é O(1) (b) f(n) é O(n) (c) f(n) é O(n log n) 2. Sejam f 1 (n) e f 2 (n) as funções de custo dos algoritmos A 1 e A 2, respectivamente. Qual é o significado de cada uma das seguintes afirmativas: a) o tempo de execução de A 1 é O(n log n) e o tempo de execução de A 2 é O(n 3 ). b) o tempo de execução de A 1 é aproximadamente n log n e o tempo de execução de A 2 é O(n log n). 5.2 Complexidade (Velocidade do Processador) Responda às seguintes perguntas: 1. Sejam um algoritmo A cuja complexidade de tempo é dada pela função f(n) = O(2 n ) e uma máquina M. Essa máquina gasta um tempo t para executar o algoritmo A, com uma entrada de tamanho m. Executando-se o mesmo algoritmo A em uma outra máquina M, 32 (trinta e duas) vezes mais rápida que M, qual será o tamanho da entrada possível de ser processada em M gastando o mesmo tempo t? 2. Sejam um algoritmo B cuja complexidade de tempo é dada pela função f(n) = O(2n 3 ) e uma máquina M. Essa máquina gasta um tempo t para executar o algoritmo B, ao fornecer uma entrada de tamanho n. Quantas vezes mais rápida deve ser uma nova máquina M para processar o algoritmo B com uma entrada 4 (quatro) vezes maior, gastando o mesmo tempo t? 3
4 Figura 1: Índices Invertidos 3. Um analista de sistemas conhece dois algoritmos para resolver o mesmo problema. A complexidade de tempo de execução do primeiro algoritmo é dada pela função f(n) = O(300n 2 ) e a do segundo algoritmo g(n) = O(5n 3 ). Mesmo sabendo que o segundo algoritmo possui uma ordem de complexidade maior do que o primeiro, o analista utilizou-o para algumas entradas. A decisão tomada pelo analista foi a seguinte: se a entrada for maior do que o m, então utilize o primeiro algoritmo; senão, utilize o segundo algoritmo. Qual o valor de m, sendo este o tamanho máximo da entrada para utilizar o segundo algoritmo? 6 TRABALHO PRÁTICO II (15 pontos) 6.1 Arquivos Invertidos com Hash Arquivos invertidos é uma técnica de indexação, i.e., uma técnica para se realizar buscas rápidas por um determinado item de uma lista de itens. Essa técnica consiste em armazenar as chaves de busca dos itens em uma estrutura de dados que permita encontrá-las rapidamente. Juntamente com a chave é também armazenada a posição na lista onde o item ocorre, permitindo o acesso direto a ele. Essa estrutura de acesso rápido pode ser, por exemplo, uma tabela hash ou mesmo uma árvore binária de pesquisa. Neste trabalho a seguinte situação é suposta: existe um vetor com uma coleção de dados sobre 40 pessoas. Para cada pessoa as seguintes informações são mantidas: cpf, nome, idade, sexo e endereço. O problema é permitir acesso rápido a esses dados sendo que as chaves de busca são o cpf e o nome. Para isso o sistema deverá armazenar as chaves e a posição do vetor onde cada pessoa se encontra em tabelas hash com resolução de conflitos por listas encadeadas (as tabelas hash devem ter tamanho 13). Veja um exemplo desse esquema na Figura 1. 4
5 Os requisitos do sistema são: o sistema deverá ler do teclado ou de um arquivo texto uma lista com os dados das pessoas e armazená-los em um vetor. o sistema deverá disponibilizar para o usuário a opção de: consulta por cpf e por nome no caso da busca por nome, deverão ser listadas todas as pessoas que possuam o nome requisitado inserção de novos registros de pessoas no sistema opção de remoção por cpf. É importante que os índices se mantenham consistentes com a remoção listar todos os registros de pessoas no sistema em ordem alfabética. para construir o índice de acesso rápido via as chaves, devem ser utilizadas duas tabelas hash com listas encadeadas para resolver conflitos. Uma delas permitirá a busca por cpf, a outra por nome, conforme ilustra a Figura 1. não use as classes e funções prontas de Java para implementação da tabela hash. 7 TRABALHO PRÁTICO III (20 pontos) 7.1 Busca em Texto: Patricia A busca em texto é uma forma de recuperação de informação muito utilizada atualmente, principalmente na Web, onde o usuário informa uma palavra ou uma lista de palavras para ser buscada nos textos de diversos documentos disponibilizados na Internet. Uma outra situação de busca textual ocorre quando tem-se um documento de texto (p.ex., um livro ou um artigo) e deseja-se procurar por uma ocorrência de uma palavra nesse texto. A busca textual automatizada torna-se relevante quando o tamanho do texto ou o número de documentos de texto a ser pesquisado é grande, situação em que a busca manual no texto mostra-se inviável. Para automatizar a busca de palavras em textos utilizam-se estruturas de dados adequadas para representar textos e documentos de texto. Neste trabalho, será considerada a busca em apenas um documento de texto, sendo as soluções utilizadas facilmente estendidas para considerar mais de um documento de texto. Um documento de texto será referido somente como texto. No trabalho prático a ser desenvolvido, as soluções de automatização de busca textual apresentadas devem ser implementadas em Java, e não é permitido o uso de soluções prontas de Java, como ArrayList, Vector, etc. Use somente tipos básicos, arranjos e classes, como estruturas fundamentais. Para resolver o problema, você deve usar árvore Patríca, conforme descrito a seguir, que deve ser implementada por meio das classes ArvorePatriciaPalavra e NodoPatriciaPalavra, que realizam as seguintes interfaces: public enum NodoTipo { INTERNO, EXTERNO } public interface IItemPalavra { public String getpalavra(); public int numdeocorrencias(); public void addocorrencia(int posicao); public int[ ] getocorrencia(); } 5
6 public interface INodoPatriciaPalavra { public void settipo(nodotipo t); public NodoTipo gettipo(); /* para nodo INTERNO */ public void setnodopatesq(inodopatriciapalavra n); public INodoPatriciaPalavra getnodopatesq(); public void setnodopatdir(inodopatriciapalavra n); public INodoPatriciaPalavra getnodopatdir(); public void setindex(int i); public int getindex(); public int calcbit(string p); /* para nodo EXTERNO */ public void setitempalavra(iitempalavra item); public IItemPalavra getitempalavra(); } public interface IArvorePatriciaPalavra { public void inicializa(); public boolean vazia(); public boolean insere(iitempalavra item); public boolean remove(string p); public IItemPalavra pesquisa(string p); } Nesta solução, as palavras também são representadas por um item que armazena suas ocorrências destas no texto. Quando uma nova palavra for encontrada no texto, um objeto do tipo IItemPalavra deve ser instanciado e inserido na árvore Patricia. Caso uma nova ocorrência da palavra for encontrada, deve-se recuperar o item na árvore que representa esta palavra, instanciar uma nova ocorrência (i.e., a posição juntamente com a palavra sucessora) e adicionar a ocorrência nesse item. Assim, todas as operações de inserção, remoção e pesquisa devem ser implementadas na árvore patrícia. Um nodo da árvore Patricia deve ser implementado pela classe NodoPatriciaPalavra. Esta classe representa tanto um nodo interno quanto um nodo externo da árvore. A função calcbit(string) é utilizada por um nodo interno para calcular o i-ésimo bit da palavra passada como parâmetro, onde i é definido pelo índice armazenado no nodo (i.e., index). Pede-se implementar esta solução por meio de um programa em Java que possibilite ao usuário fornecer como entrada um arquivo de texto e um padrão de busca (i.e., uma palavra ou uma frase) e informe como saída todas as ocorrências deste padrão no texto, apresentando o trecho do texto que inicia na posição indicada pela ocorrência do padrão, juntamente com o restante do texto até a primeira quebra de linha. Faça testes utilizando esta solução e apresente uma análise da complexidade dos algoritmos implementados, assim como dos resultados dos testes realizados. Para os testes utilize pelo menos um arquivo de texto com pelo menos palavras. 8 TRABALHO PRÁTICO IV (20 pontos) 8.1 Árvores-B 1. Defina árvore-b 2. Quando árvores-b devem ser usadas, isto é, em que situação elas se apresentação como uma solução eficiente? 6
7 3. Em linhas gerais, como inserções de registros são efetuadas em árvores-b? Em particular, explique como violações de propriedade da árvore-b devido a inserção de registros são resolvidas. 4. Em linhas gerais, como remoções de registros são efetuadas em árvores-b? Em particular, explique como violações de propriedade da árvore-b devido a remoção de registros são resolvidas. 8.2 Inserção e Remoção em Sbb 1. Desenhe as árvores resultantes de cada passo da inserção de um nodo com chave 5 e depois de outro com chave 90 na árvore SBB abaixo à esquerda. 2. Desenhe as árvores resultantes de cada passo da remoção da chave 9 e depois da chave 5 da árvore SBB abaixo à direita. ***** 7
Tabelas de dispersão/hash
Tabelas de dispersão/hash 1 Tabelas de dispersão/hash 1. Considere uma tabela de hash de tamanho m = 1000 e a função de hash h(k)= [m.(k.a % 1)], com A=( 5-1)/2. Calcule os valores de hash das chaves 61,
Leia maisEdital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 055/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisBit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256
Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256 informações diferentes; Tipos Primitivos são implementados nas
Leia maisEdital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome
Leia maisUniversidade de São Paulo
Universidade de São Paulo Instituto de Ciências Matemáticas e Computação SCE5763 - Tipos e Estrutura de Dados - Luis Gustavo Nonato 2 a Lista de Exercícios 1. Seja A um array de inteiros. Escreva algoritmos
Leia maisFilas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014
Filas de prioridade Marcelo K. Albertini de Novembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisAula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo
Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária Túlio Toffolo www.decom.ufop.br/toffolo Pesquisa em Memória Primária n Introdução - Conceitos Básicos n Pesquisa Sequencial n Pesquisa Binária n Árvores
Leia maisEdital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 053/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisTrabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
Leia maisFilas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013
Filas de prioridade Marcelo K. Albertini de Dezembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisCentro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional
Centro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional Disciplina: Algoritmos e Estruturas de Dados Professor: Flávio Cardeal Lista de
Leia maisHashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri
Hashing Externo SCC-503 Algoritmos e Estruturas de Dados II Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri 1 Hashing 0 1 chave de busca K = LOWELL 2 h(k) endereço 4 (RRN 4) 3 4 5... LOWELL......
Leia maisAlgoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Aula 09 Revisão + Simulado Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2019 1 Vetores 2 Vetores 3 Vetores vetor 4 Vetores... vetor... 5 Ponteiros 6 Processo
Leia maisLista de Exercícios sobre Listas Implementadas por Encadeamento
Lista de Exercícios sobre Listas Implementadas por Encadeamento 1) Se você tem de escolher entre uma representação por lista encadeada ou uma representação usando posições contíguas de memória para um
Leia maisLista de Exercícios 04
Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professor: Túlio Toffolo (www.decom.ufop.br/toffolo)
Leia maisEdital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisAula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Aula 15: Pesquisa em Memória Primária Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa Binária Árvores de
Leia maisHashing: conceitos. Hashing
Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado
Leia maisICET CURSO: Ciência da Computação e Sistemas de Informação (Estrutura de Dados) Estudos Disciplinares Campus: Data: / / Nome:
ICET CURSO: Ciência da Computação e Sistemas de Informação (Estrutura de Dados) Estudos Disciplinares Campus: Data: / / Nome: RA: Turma: Questão 1 (ENADE Computação 2005) No famoso jogo da Torre de Hanói,
Leia maisUniversidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Alocação sequencial Listas lineares,
Leia maisHASHING HASHING 6/10/2008
Hashing é uma técnica que busca realizar as operações de inserção, remoção e busca em tempo constante. Motivação - Acesso Direto: Suponha que existam n chaves a serem armazenadas em uma tabela T, seqüencial
Leia maisAs Listas são simples de se implementar, mas, com um tempo médio de acesso T = n/2, tornando-se impraticáveis para grandes quantidades de dados.
Tabelas de hash Considerações iniciais: Até o momento foram estudados basicamente dois tipos de estruturas de dados para o armazenamento flexível de dados: Listas; Árvores. Como vimos, cada um desses grupos
Leia maisProva 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova PMR00 o. semestre 0 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço.. ( pontos) Um heap binário é uma árvore binária completa (todos os níveis exceto o último
Leia maisEstruturas de Dados Estruturas de Dados Fundamentais
Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando
Leia maisComplexidade de Algoritmos
Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Análise de complexidade de Estruturas
Leia maisEdital de Seleção 016/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 016/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisDicionários. TAD Orientado a conteúdo
Dicionários TAD Orientado a conteúdo Dicionários efinição: Tipo abstrato de dados orientado a onteúdo. Contrasta com as PILHAs e FILAs que são orientadas a posição. perações implementadas: Inserir(d,x)
Leia maisTipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares)
Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares) 1. Refaça todos os itens do exercício 1 da Lista de Exercícios anterior (Listas
Leia maisTabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015
Tabela Hash Disciplina de Algoritmos e Estrutura de Dados III Prof. Marcos Antonio Schreiner 15/05/2015 Introdução Seja um conjunto de chaves armazenadas em um vetor e em uma árvore AVL. Qual a complexidade
Leia maisTabelas Hash. Prof. Túlio Toffolo BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I
Tabelas Hash Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa
Leia maisÁrvores. Estruturas de Dados. Prof. Vilson Heck Junior
Árvores Estruturas de Dados Prof. Vilson Heck Junior Árvores INTRODUÇÃO Introdução Árvores são estruturas de dados utilizadas para armazenar e recuperar dados de forma rápida e eficiente; Árvores não são
Leia maisEstrutura de Dados e Arquivos Ementa Objetivo Geral Conteúdo Avaliação
Faculdades NDA Plano de Ensino Curso:SISTEMAS DE INFORMAÇÃO Disciplina: Estrutura de Dados e Arquivos Carga horária semanal: 4 Ano: 2006 Turma: MD3 e ME3 Carga horária total: 80 Corpo docente: Ly Freitas
Leia maisNível da Arquitetura do Conjunto das Instruções
Fluxo Seqüencial de Controle e Desvios (1) Nível da Arquitetura do Conjunto das Instruções (Aula 13) Fluxo de Controle Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Fluxo
Leia maisAlgoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira Ementa e Objetivos Ementa: Análise de Algoritmos: Notação O e Análise Assintótica.
Leia maisA inserção da chave 6 da árvore acima resulta na árvore abaixo.
149 Árvores B+ As operações nas árvores B+ não são muito diferentes das operações das árvores B. Inserir uma chave em uma folha que ainda tenha algum espaço exige que se coloque as chaves desta folha em
Leia maisAula 07: Algoritmos de busca e Listas encadeadas
BC1424 Algoritmos e Estruturas de Dados I Aula 07: Algoritmos de busca e Listas encadeadas Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2016 1 Busca de um elemento 2 Exemplo: Busca de um elemento
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Frequência Resolução 19/maio/2015 A. [3.5 val] Algoritmos de ordenação e de pesquisa Considere-se as seguintes
Leia maisHeaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Heaps Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Introdução Definição de Heap Heap Binária Implementação com vetor Fila de Prioridades
Leia maisExercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore.
Leia maisINTRODUÇÃO ÀS ESTRUTURAS DE DADOS. Prof. Dr. Daniel Caetano
ESTRUTURA DE DADOS INTRODUÇÃO ÀS ESTRUTURAS DE DADOS Prof. Dr. Daniel Caetano 2014-2 Objetivos Conhecer o professor e o curso Compreender o que são estruturas de dados e sua importância Relembrar conceitos
Leia maisHASHING Hashing Motivação - Acesso Direto:
Hashing é uma técnica que busca realizar as operações de inserção, remoção e busca em tempo constante. Motivação - Acesso Direto: Suponha que existam n chaves a serem armazenadas em uma tabela T, seqüencial
Leia maisPLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM GESTÃO DA INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GGI026 PERÍODO:
Leia maisListas (Parte 1) Túlio Toffolo BCC202 Aula 09 Algoritmos e Estruturas de Dados I
Listas (Parte 1) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 09 Algoritmos e Estruturas de Dados I Ementa do Curso Tipos Abstratos de Dados / Alocação Dinâmica Análise de Algoritmos
Leia maisMatrizes esparsas: definição
Matrizes esparsas: definição o objetivo é mostrar os métodos de armazenamento e manipulação de matrizes esparsas esparsidade de uma matriz é a relação entre o número de elementos nulos de uma matriz e
Leia maisArquivos invertidos 39
Arquivos invertidos 39 Arquivos invertidos É um mecanismo que utiliza palavras para indexar uma coleção de documentos a fim de facilitar a busca e a recuperação Estruturas de um arquivo invertido Vocabulário
Leia maisÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO
Leia maisLista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501)
Lista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501) Prof. Moacir P. Ponti Jr. 24 de novembro de 2010 1 Hashing 1. Suponha uma tabela hash de tamanho 10 com endereçamento aberto para
Leia maisSlide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel.
Slide 01 16/03/2017 Estruturas de Dados Prof. Cleziel Franzoni da Costa 1 @Cleziel /Cleziel cleziel@hotmail.com 42 3 EMENTA Listas lineares e suas variações. Filas e pilhas. Árvores binárias e suas variações.
Leia maisIntrodução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)
Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01
Leia maisEdital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 032/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisSegundo Trabalho Prático Turma A
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Organização de Arquivos Profa. Dra. Cristina Dutra de Aguiar Ciferri PAE
Leia maisAlgoritmos e Estruturas de Dados II. Trabalho Prático 4
Algoritmos e Estruturas de Dados II Trabalho Prático 4 Entrega: 23/11/09 Devolução: 10/12/09 (sem possibilidade de entrega com atraso) Trabalho em dupla Prof. Jussara Marques de Almeida Problema 1: Construção
Leia maisHashing. ACH Introdução à Ciência da Computação II. Delano M. Beder
ing ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 11/2008 Material baseado em slides do professor
Leia maisPrimeira Prova de Linguagens de Programação - DCC024B -
Primeira Prova de Linguagens de Programação - DCC024B - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Exame Época Normal Resolução 13/junho/2015 A. [3.5 val] Algoritmos de ordenação e de pesquisa Considere-se as
Leia maisPLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM GESTÃO DA INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GGI026 PERÍODO:
Leia maisTAD dicionário. Métodos do TAD dicionário:
TAD dicionário O TAD dicionário modela uma coleção buscável de itens chave-elemento As principais operações em dicionários são busca, inserção e remoção de itens Vários itens com a mesma chave são permitidos
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Exame Época Normal (15 val) 2h + 30min 21/01/2019 1 [2,00 val = 1,00 val + 1,00 val] - Memória dinâmica Considere as seguintes declarações de variáveis:
Leia maisÁrvores de Pesquisa (Parte I)
Baseado no material do Prof. Reinaldo Fortes para o curso de 2014-01 Arquivo original: 21._arvores_(parte_1) Árvores de Pesquisa (Parte I) Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Algoritmos
Leia maisQuinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Algoritmos e Estruturas de Dados II docente Profa. Dra. Cristina Dutra de
Leia mais(a) I (b) I e II (c) II (d) II e III (e) I, II e III
UNIVERSIDADE FEDERAL DO AMAPÁ CURSO: CIÊNCIA DA COMPUTAÇÃO BACHARELADO QUESTÃO 01 Em relação aos aspectos ligados a história da evolução de máquinas de multiníveis, podemos afirmar: I Programas escritos
Leia maisLista de exercícios sobre contagem de operações Prof. João B. Oliveira
Lista de exercícios sobre contagem de operações Prof. João B. Oliveira 1. metodo m ( Vetor V ) int i, res = 0; para i de 1 a V.size res = res + V[i]; return res; Soma de elementos de um vetor, O( ). 2.
Leia maisPrimeiro Trabalho Prático Turma A. Descrição do Trabalho. Considere os seguintes dados a respeito de um livro:
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Organização de Arquivos Profa. Dra. Cristina Dutra de Aguiar Ciferri PAE
Leia maisTabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou
Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou também denominada de tabela hashing com endereçamento aberto.
Leia maisEstrutura de Dados. Plano de Ensino. Vilson Heck Junior. Campus Lages. Instituto Federal de Santa Catarina
Estrutura de Dados Plano de Ensino Vilson Heck Junior Instituto Federal de Santa Catarina Campus Lages Sumário 1 Sumário 2 Plano de Ensino Competências, Habilidades e Atitudes Bases Tecnológicas Instrumentos
Leia maisAlgoritmos e Estrutura de Dados. Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira Listas Seqüenciais Estática Seqüencial É implementada usando um vetor Deve-se determinar qual a
Leia mais1. Faça um programa que leia uma string digitada pelo usuário e salve em um arquivo em branco.
Segunda lista de exercícios v100 Engenharia Elétrica - Eletrônica 2º Semestre de 2015 Prof: Daniel Rodrigo Ferraz Bonetti SSC0300 Linguagem de Programação e Aplicações 1 Faça um programa que leia uma string
Leia maisÁrvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Leia maisAlgoritmos de pesquisa. Tabelas de dispersão/hash
Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor. Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade.
Leia maisPRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: ID: 25/04/2005. PARTE I Questões Objetivas
Universidade Federal do Rio Grande do Sul Instituto de Informática Bacharelado em Ciência da Computação/ Engenharia da Computação INF 01203 Estruturas de Dados Professora: Renata de Matos Galante PRIMEIRA
Leia maisEstrutura de Dados Conceitos Iniciais
Engenharia de CONTROLE e AUTOMAÇÃO Estrutura de Dados Conceitos Iniciais Aula 01 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria
Leia maisGrupo 2 - Implementação de uma Classe Simples
Estruturas de Dados 2017/2018 Época Normal (15 de Junho de 2018) Versão A Duração: 2h30m + 30m Número mecanográco: Nome completo do estudante: Grupo 1 - Fundamentos de Java 1.1. Escreva pequenos excertos
Leia maisHashing convencional...
Hashing M.C.F. de Oliveira & Cristina Ciferri 2006/2007 Fonte: Folk & Zoelick, File Structures 1 Hashing convencional... Revisão... 2 1 Hashing 0 chave de busca K = LOWELL h(k) endereço 4 1 2 3 4 5...
Leia maisEstrutura de dados - Listas Encadeadas
Estrutura de dados - Listas Encadeadas Prof. Leonardo Cabral da Rocha Soares leonardo.soares@newtonpaiva.br Centro Universitário Newton Paiva 25 de abril de 2019 Estrutura de dados - Listas Encadeadas
Leia maisDisciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Aula Passada Prática com declaração e inicialização de variáveis Capacidade de representação (estouro de representação) Tamanho ocupado pela variável na memória (comando
Leia maisEstruturas de Dados. Prof.: Carlos Alberto Página da Disciplina:
Estruturas de Dados Prof.: Carlos Alberto Página da Disciplina: http://alged.webnode.com/ E-mail: carlos36_batista@yahoo.com.br Estruturas de dados Programa da disciplina Estruturas de dados - referências
Leia maisTABELAS DE DISPERSÃO/HASH
1/47 TABELAS DE DISPERSÃO/HASH Introdução 2/47 Introdução Motivação - Considerar o problema de pesquisar um determinado valor num vetor: - Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade
Leia maisLista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013
Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void
Leia maisEstruturas de Dados Apresentação
Estruturas de Dados Apresentação Prof. Eduardo Alchieri Objetivos Apresentar técnicas fundamentais na análise e projeto de estruturas de dados em programas computacionais Vamos aprender: Quais são as principais
Leia maisCAP. VI ANÁLISE SEMÂNTICA
CAP. VI ANÁLISE SEMÂNTICA VI.1 Introdução Semântica SIGNIFICADO, SENTIDO LÓGICO, COERÊNCIA,... Diferença entre SINTAXE e SEMÂNTICA Sintaxe : descreve as estruturas de uma linguagem; Semântica : descreve
Leia maisHashing (Tabela de Dispersão)
Hashing (Tabela de Dispersão) Prof. Marcos Alves 2009-B Roteiro Contextualização Conceitos Básicos Hashing (método de pesquisa) Hashing Perfeito Hashing Imperfeito Colisões Métodos de Tratamento de Colisões
Leia maisÁrvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo
PMR2300 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó (exceto a
Leia maisESTRUTURA DE DADOS LISTAS LINEARES
ESTRUTURA DE DADOS LISTAS LINEARES Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender as listas sequenciais Implementar uma Lista Sequencial com Vetor Compreender o uso de listas sequenciais Material
Leia maisINE5408 Estruturas de Dados. Apresentação e Programa da Disciplina
INE5408 Estruturas de Dados Apresentação e Programa da Disciplina Organização da Disciplina Objetivos Metodologia Avaliação Material Didático Realização dos Trabalhos Programa da Disciplina Bibliografia
Leia maisTrabalho Prático 2 Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas
Disciplina: Algoritmos e Estrutura de Dados I CIC / 9 Trabalho Prático Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas Valor:,5 pontos (5% da nota total) Documentação não-latex: -, pontos Impressão
Leia maisAlgoritmos e Programação II. Coleções. Coleções. Baseado no material do Prof. Julio
Algoritmos e Programação II Baseado no material do Prof. Julio Coleções Java disponibiliza classes que facilitam o agrupamento e processamento de objetos em conjuntos: Coleções (Java Collections Framework).
Leia maisBanco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 1. Prof. Leonardo Vasconcelos
Banco de Dados SGBD - Sistema de Gerenciamento de Banco de Dados Parte 1 Prof. Leonardo Vasconcelos - O que é um banco de dados (BD)? Um Banco de Dados (ou Base de Dados) é uma coleção de dados relacionados,
Leia maisAlgoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1
Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) PIP/CA - Programa Interdisciplinar de Pós-Graduação
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Exame Especial Resolução 19/07/2013 A. [4.75 val] Algoritmos de ordenação e de pesquisa (usando memória estática
Leia maisEstruturas de Dados. Profº Carlos Alberto Teixeira Batista
Estruturas de Dados Profº Carlos Alberto Teixeira Batista E-mail: carlos.batista@facape.br carlos36_batista@yahoo.com.br Lista Linear São estruturas formadas por um conjunto de dados de forma a preservar
Leia maisO que é um jogo digital?
O que é um jogo digital? Programa de Computador Dados Algoritmos Para que estudar Estrutura de Dados? Para manipular os dados dos programas usamos os ALGORITMOS e para organizar os dados da melhor forma
Leia maisOrientação a Objetos AULA 09
Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este
Leia maisTabelas Hash Endereçamento Direto
Tabelas Hash Endereçamento Direto ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 11/2008 Material
Leia maisMétodos de Busca Parte 1
Métodos de Busca Parte 1 Introdução à Ciência da Computação II Prof. Diego Raphael Amancio Baseado no material do Prof. Rudinei Goularte e do Prof. Thiago A. S. Pardo Introdução Importância em estudar
Leia maisINF1010 Lista de Exercícios 2
INF00 Lista de Exercícios 2 Árvores. Construir algoritmo para dada uma árvore n-ária, transformá-la em uma árvore binária. 2. Qual a maior e menor quantidade de nós que podem existir em uma árvore binária
Leia maisO problema do 3*n Otimização
O problema do 3*n + 1 - Otimização Este documento apresenta uma breve descrição e análise comparativa de 12 implementações do problema 3*n+1. Id Nome do Arquivo P3nMais1_.jav a P3nMais1_ursivo.j ava Descrição
Leia maisLista de Prioridades. Estrutura de Dados II Prof. Erinaldo
Lista de Prioridades Estrutura de Dados II Prof. Erinaldo Heap Ou lista de prioridades, é composta por um conjunto finito de dados, cada qual com uma chave que determinará sua prioridade dentro da lista.
Leia mais