Algoritmos de Pesquisa

Slides:



Advertisements
Apresentações semelhantes
Exemplos de código WebForm1.aspx: Listas.aspx: TestaMarcadores.aspx:
Advertisements

LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Python: Dicionários Claudio Esperança.
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
IV – Análise semântica DEI Implementação da tabela de símbolos
Personalização Objecto Profile. 1 O objecto Profile O objecto Profile permite armazenar informação única de um utilizador. Quando o utilizador visita.
Algoritmos de Busca CONTEÚDO (1) Motivação (2) Busca Linear
Estruturas de Dados Árvores Binárias
Listas duplamente encadeadas
Inserir uma tabela com os dados que se pretendem visualisar
Escola Secundária da Ramada
Principais famílias de algoritmos
Prof. Heloise Manica Paris Teixeira
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
INE 5384 Estruturas de Dados Prof a. Patrícia Vilain
Pesquisa em Memória Primária
HeapSort Filas de Prioridade – Heap
Pesquisa em Memória Primária – Árvores de Busca
David Menotti Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária – Árvores de Busca
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária
Walfredo Cirne walfredo.dsc.ufpb.br
Estrutura de Dados (Mapas)
Análise Léxica Supondo o trecho de programa abaixo:
Listas com Ponteiros Listas encadeadas Listas circulares.
Instrutor: Nilo Menezes
1 Aula 3 Listas e iteradores (cont.). 2003/2004 Programação Orientada para Objectos 2 ListaDeInt : interface class ListaDeInt { public: typedef int Item;
2002/2003 Programação Orientada para Objectos 1 Aula 3 Utilização de listas Melhorando a implementação das listas e iteradores Reflexão sobre interfaces.
Algoritmos e Programação
O Portal do Estudante de Computação
Biblioteca do Conhecimento Online – b-on FONTES DE INFORMAÇÃO SOCIOLÓGICA.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Departamento de Estatística e Informática
Aula prática - análise contextual
Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária
TDNE Serviço de Tradução. Classe Entrada – Representa uma entrada do dicionário public class Entrada { private String termo; private String traducao;
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Programação I Aula 2 (Métodos)
Os métodos equals() e hashCode()
Orientação a Objetos e Java Graduação em Ciência da Computação
Pilhas Profa. Nádia Félix.
UNIDADE 2: Sistema Operativo em Ambiente Gráfico
Árvore Binária de Busca
Módulo I Capítulo 5: Vetores
Ceça Moraes – Introdução à Programação SI1
Expressões Regulares – Estruturas de Dicionários
Paradigmas da Programação – Semestre 2 – Aula 13 Professor: Eduardo Mantovani Prof. Fábio de Paula Santos
Filas  São utilizadas em aplicações onde são impostos critérios para a inserção e retirada de elementos cuja ordem não depende da ordem natural dos valores.
Estruturas de Dados Aula 15: Árvores
Aula 06 – 05/04 Árvores binárias.
Linguagem de Programação II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Módulo 9 Strings , Coleções e I/O
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009.
Fundamentos da Linguagem C#
Coleções em Java - Parte 2
Bruno Inojosa MCP.NET Framework.NET com C#. Orientação a Objeto parte II.
1 TAD Fila com Prioridade -FCP ATAI. 2 TAD Fila com Prioridade (Priority Queue) TAD Fila com Prioridade armazena uma colecção de elementos com prioridade.
Professor: Pedro Lopes Gestão de Base de dados Ano Lectivo 2010/2011.
Introdução às Tecnologias de Informação e Comunicação
Coleções em Java (Parte 1)
Array e ArrayList LPOO – 01/09/14.
Aula 3. ListView ListView é um componente que mostra uma lista de itens Os itens da lista são automaticamente inseridos usando um adapter, implementado.
Orientação a Objetos com PHP
Classificação (Ordenação) de dados
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
Revisão Turma – WEB JavaScript.
Capítulo 4. Conjuntos  Introdução  Principais operações de conjuntos  Principais interfaces de conjuntos  A interface Collection  A interface Iterator.
ASP.NET Passo a Passo Controles com Processamento Personalizado Criando um controle personalizado 1. Abra ou copie a solução ControlORama desenvolvido.
Transcrição da apresentação:

Algoritmos de Pesquisa UFCD 0804 Algoritmos Algoritmos de Pesquisa – Tabelas de Símbolos e Árvores Binárias de Pesquisa – Valentim Realinho, 2016

Tabelas de Símbolos Pesquisar (Procurar): Algoritmos de Pesquisa: Tabela de Símbolos Tabelas de Símbolos Pesquisar (Procurar): Tem como objectivo aceder a items cujas chaves são iguais a uma chave de pesquisa Definição: Uma Tabela de Símbolos (Symbol Table) é uma estrutura de dados de items com chaves que suporta 2 operações básicas: inserir um novo item; retornar um item com uma determinada chave. As Tabelas de Símbolos são também chamadas de dicionários (dictionaries)

Tabela de Símbolos Podemos pensar em algoritmos de pesquisa, Algoritmos de Pesquisa: Tabela de Símbolos Tabela de Símbolos Podemos pensar em algoritmos de pesquisa, definindo uma interface que declara um conjunto de operações genéricas que podem ter várias implementações, dependentes do algoritmos particular Operações Inserir uma novo item Pesquisar por um item (s) que tenham uma determinada chave. Apagar um determinado item Seleccionar o k menor item Ordenar a tabela de símbolos visitar todos os items pela ordem das chaves não é necessário ordenar Juntar duas tabelas de símbolos Outras: init, isempty, destroy, copy, search-and-insert, …

Algoritmos de Pesquisa: Dictionary em C# O C# implementa a classe Dictionary que facilita a utilização de Tabelas de Símbolos //Dictionary<chave, valor> Dictionary<int, String> alunos = new Dictionary<int, String>(); // Adicionar itens ao dictionary alunos.Add(1001, "João Silva"); alunos.Add(1247, "Margarida Silva"); alunos.Add(3478, "Manuel Ferreira"); // Limpar o dictionary alunos.Clear(); // Verificar se existe aluno if (alunos.ContainsKey(1247)) { String nome = dictionary[1247]; // … }

Algoritmos de Pesquisa: Dictionary em C# O C# implementa a classe Dictionary que facilita a utilização de Tabelas de Símbolos // Verificar se existe valor if (alunos.ContainsValue("José Silva")) { // aluno existe // … } // Remover aluno alunos.Remove(1001); // Para cada aluno, retornar o número e o valor foreach (KeyValuePair<int, String> aluno in alunos) { int numero = item.Key; String nome = item.Value;

Algoritmos de Pesquisa: Dictionary em C# Exercício Considere o programa identificado como “Pesquisa” que se encontra na pasta “Exercicios” e proceda às seguintes alterações. Preencha a ListBox “listBoxListagem” com o número e nome doa alunos do dicionário “alunos”. Escreva o código associado ao botão “Pesquisar”, o qual deverá ter o seguinte comportamento: Deverá fazer uma pesquisa por número de aluno no caso o utilizador tiver introduzido o número de aluno; Deverá fazer uma pesquisa por nome de aluno no caso o utilizador tiver introduzido o nome do aluno; Deverá mostrar o resultado da pesquisa numa MessageBox Aumente o número de alunos e analise os tempos de pesquisa