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

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

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 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.

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

3 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).

4 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

5 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).

6 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

7 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.

8 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.

9 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.


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google