A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmos de Pesquisa

Apresentações semelhantes


Apresentação em tema: "Algoritmos de Pesquisa"— Transcrição da apresentação:

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

2 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)

3 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, …

4 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]; // … }

5 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;

6 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


Carregar ppt "Algoritmos de Pesquisa"

Apresentações semelhantes


Anúncios Google