Pesquisa Algoritmos de pesquisa recebem um alvo e tentam encontrá-lo dentro de um conjunto de elementos. Recuperação (ou hit): quando o algoritmo encontra.

Slides:



Advertisements
Apresentações semelhantes
Ordenação de Dados em Memória
Advertisements

Geometria Computacional Fecho Convexo II
Matrizes Unidimensionais
Fluxo em Redes Prof. Ricardo R. Santos.
Estruturas de Dados Marcio Gonçalves.
Katia S. Guimarães QUICKSORT Katia S. Guimarães
Linguagem de Programação X Métodos de Pesquisa
Exercício Exercício. Considere um algoritmo sequencial que busca um elemento em uma lista não ordenada a) Qual é a complexidade de tempo deste algoritmo.
Aula 10 Algoritmos de Busca
Algoritmos de Ordenação
Algoritmos de Busca CONTEÚDO (1) Motivação (2) Busca Linear
Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas.
Busca sequencial Consiste em percorrer um vetor à procura de um certo elemento. O valor procurado deve ser confrontado com cada elemento do vetor, e o.
Algoritmos de manipulação de estruturas elementares de dados
Algoritmos BUSCA E INSERÇÃO
Recursividade Prof. Alex F. V. Machado
Análise Projeto de Algoritmos
Árvore Binária de Busca
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.

Pesquisa em Memória Primária
Pesquisa em Memória Primária – Árvores de Busca
Medida do Tempo de Execução de um Programa
Pesquisa em Memória Primária – Árvores de Busca
Medida do Tempo de Execução de um Programa
Pesquisa em Memória Primária
André Lopes Pereira Luiz Carlos Barboza Júnior
FACENS – Engenharia da Computação Lógica Computacional II
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Complexidade de Algoritmos
Classificação e Pesquisa de Dados
Métodos de Pesquisa: Seqüencial e Binária
Pesquisa em Memória Primária
Análise Léxica Supondo o trecho de programa abaixo:
Marco Antonio Montebello Júnior
Insertion Sort.
Algoritmos de Busca Parte II
Pesquisa em Memória Primária
INTELIGÊNCIA ARTIFICIAL
Algorítmos e estrutura de dados III
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
LINGUAGENS DE PROGRAMAÇÃO PROF. DANIELA PIRES
Métodos de Ordenação e Busca
Listas, Filas e Pilhas Katia Guimarães.
Mergesort Katia Guimarães.
Estruturas de Dados e Ordenação
Estrutura de dados - Vetores
Disciplina Inteligência Artificial Defesa de Projeto Período
Fundamentos de Programação
Ceça Moraes – Introdução à Programação SI1
Introdução à Linguagem C
Árvores Binárias Profa. Patrícia A. Jaques Luiz Gonzaga Jr
Estruturas de Dados Aula 15: Árvores
Aula 10 Algoritmos de Busca
Capítulo VI – Variáveis Indexadas 6.1 – A necessidade de variáveis indexadas 6.2 – Vetores e matrizes 6.3 – Aplicações com vetores numéricos 6.4 – Aplicações.
Tabela Hash Alunos : Gustavo Jorge Zanin nºUSP
Lista Linear Base para outras estruturas
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Como analisar um algoritmo
Programação Dinâmica.
Geometria Computacional Fecho Convexo
Complexidade de Computação Katia Guimarães. Avaliando a Qualidade de um Algoritmo É preciso ter bem definido –O que é dado de entrada e –O que é esperado.
ATAL – Prof. Jorge Figueiredo Ordenação AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação.
Classificação Ordenação de Dados
Métodos de Pesquisa: Seqüencial e Binária
Métodos de Pesquisa: Sequencial e Binária
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.
1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco.
Algoritmos com matrizes e vetores
Transcrição da apresentação:

Pesquisa Algoritmos de pesquisa recebem um alvo e tentam encontrá-lo dentro de um conjunto de elementos. Recuperação (ou hit): quando o algoritmo encontra o alvo. Dicionário: conjunto de dados e chaves. A pesquisa é feita pela chave com o objetivo de recuperar os dados associados. Índice: conjunto de chaves onde é realiza a pesquisa.

Pesquisa - Algoritmos Pesquisa sequencial ou linear Pesquisa binária Pesquisa por interpolação Pesquisa por cálculo de endereço

Pesquisa Sequencial Procurar sequencialmente o alvo entre todos os elementos do índice. Implementação é simples. Sem necessidade de ordenar o conjunto de dados. Número médio de comparações: (n+1)/2. Implementação simples, mas o desempenho é sofrível: O(n).

Pesquisa Sequencial - Algoritmo PesquisaSequencial (vet, n, alvo) i: numérico início para i  0 até n-1 passo 1 faça se (vet[i] = alvo) retorne i fim se fim para retorne -1 fim

Pesquisa Binária O índice deve estar ordenado. O algoritmo tenta encontrar o alvo no meio do índice. Se o alvo não for encontrado, repete-se a busca na metade do índice onde ele pode estar. Implementação utilizando recursividade é simples. Número médio de comparações: log2n + 1. Desempenho ótimo: O(logn).

Pesquisa Binária - Algoritmo PesquisaBinaria (vet, ini, fim, alvo) i: numérico início i  (ini + fim) /2 se (v[i] = alvo) returne i senão se (ini = fim) retorne -1 senão se (alvo < v[i]) retorne pesquisa(vet, ini, i-1, alvo) retorne pesquisa(vet, i+1, fim, alvo) fim se fim

Pesquisa por Interpolação O índice deve estar ordenado. Variação de pesquisa binária, que tenta dividir o índice ponderando-se os valores limite. Adequada para conjuntos de dados com chaves uniformemente distribuídas. Número médio de comparações: log2(log2n). Desempenho excelente: O(log(logn)). Entretanto, deve-se ter cuidado com dados não uniformes.

Pesquisa por Interpolação - Algoritmo PesquisaInterpolacao (vet, n, alvo) max, min, i: numérico início min  0 max  n -1 enquanto (vet[max] >= alvo) e (alvo > vet[min]) i  (alvo – vet[min]) / (vet[max] – vet[min]) i  i * (max – min) + min se (alvo > v[j]) min  i + 1 senão se (alvo < vet[j]) max  i – 1 senão min  i fim se fim enquanto se (vet[min] = alvo) retorne min senão retorne -1 fim se fim.

Pesquisa por Cálculo de Endereço O índice não precisa estar ordenado. É realizado um cálculo com o valor a ser armazenado que resulta no índice. Dependendo da função, o desempenho pode ser sofrível O(n) ou excelente O(1). A escolha da função de cálculo é fundamental.