190 likes | 391 Views
Métodos de Pesquisa: Seqüencial e Binária. Prof. Alexandre Parra http://www.joinville.udesc.br/portal/professores/parra/. Roteiro. Contextualização Pesquisa Seqüencial Pesquisa Binária. Roteiro. Contextualização Pesquisa Seqüencial Pesquisa Binária. Contextualização.
E N D
Métodos de Pesquisa: Seqüencial e Binária Prof. Alexandre Parrahttp://www.joinville.udesc.br/portal/professores/parra/
Roteiro • Contextualização • Pesquisa Seqüencial • Pesquisa Binária
Roteiro • Contextualização • Pesquisa Seqüencial • Pesquisa Binária
Contextualização • Apresentaremos e discutiremos diferentes estratégias para efetuarmos a pesquisa (busca) de um elemento específico em um conjunto de dados. • Esta operação é muito importante, pois é encontrada com muita freqüência em diversas aplicações. • Apresentaremos os métodos de pesquisa seqüencial e binária sobre a estrutura de dados vetor.
Roteiro • Contextualização • Pesquisa Seqüencial • Pesquisa Binária
Pesquisa sobre Vetores • Pesquisa Seqüencial (PS) • Forma mais simples de realizar pesquisas. • Metodologia: Percorre o vetor, elemento por elemento, verificando se o elemento desejado está presente no vetor. Pergunta: Como verificar se o elemento 90 está presente no vetor acima? Pergunta: Quantas comparações são necessárias para achar o elemento 90?
Características • Extremamente simples o algoritmo; • Pode ser muito ineficiente quando o conjunto de dados é muito grande.
Desempenho Computacional • Pior Caso: é quando é necessário realizar n comparações (onde n é o número de elementos); Qual o cenário de pior caso possível ? • Melhor Caso: é quando é necessário realizar somente uma comparação; Qual o cenário de melhor caso possível ? • Caso Médio: é quando é necessário realizar cerca de n/2 comparações. Qual o cenário de caso médio possível ?
Análise de Complexidade da PS • Pode-se desconsiderar os casos extremos (melhor e pior caso). • Portanto, qual a complexidade do algoritmo de busca seqüencial sobre vetores ?
Perguntas • Seria possível melhorarmos a eficiência do método apresentado? • Como !?
Roteiro • Contextualização • Pesquisa Seqüencial • Pesquisa Binária
Pesquisa sobre Vetores • Pesquisa Binária (PB) • Forma mais eficiente de realizar pesquisas em relação ao método de PS. • Metodologia: • Consiste em comparar alguns itens do vetor com o dado (chave alvo) que deseja-se encontrar. • Premissa: os dados contidos no vetor já estão ordenados segundo um critério.
Pesquisa sobre Vetores • Metodologia (Cont...): • Passos do processo: 1) Checar onde está o ponto médio do vetor. 2) Comparar o elemento do ponto médio (EPM) com a chave alvo (CA). 3) Caso não encontre o dado no passo 2, continuar a pesquisa da seguinte forma: • Caso CA<EPM realizar a pesquisa no sub-vetor a esquerda do EPM, partindo do passo 1. • Caso CA>PM realizar a pesquisa no sub-vetor a direita do EPM, partindo do passo 1. • Caso CA=EPM, então a pesquisa para com sucesso, pois achou o dado desejado!
Exemplo de Pesquisa Binária Exemplo Inicial: Após ordenação: !!!??? Pergunta: Como verificar se o elemento 90 está presente no vetor acima? Pergunta: Quantas comparações são necessárias para achar o elemento 90? Pergunta: Como verificar se o elemento 71 está presente no vetor acima? Pergunta: Quantas comparações são necessárias para achar o elemento 71?
(n-1)/2 1 (n-1)/2 (n-3)/4 1 (n-3)/4 (n-3)/4 1 (n-3)/4 (n-7)/8 1 (n-7)/8 (n-7)/8 1 (n-7)/8 (n-7)/8 1 (n-7)/8 (n-7)/8 1 (n-7)/8 ..... ..... ..... ..... Ilustração de pesquisa usando PB n
Complexidade da Pesquisa Binária • Pior Caso: quando o dado desejado encontra-se na folha da árvore ou não existe. Portanto: O(log2n) • Melhor Caso: quando o dado desejado encontra-se na raiz da árvore. Portanto: O(1) • Caso Médio: quando o dado desejado encontra-se próximo do “meio” da árvore. Portanto: O(log2n)
Complexidade da Pesquisa Binária Nível da partiçãoSegmentosComparações 0 1 n – 1 1 2 n – 3 = (((n - 1) / 2) - 1) * 2 2 4 n – 7 = (((n - 3) / 4) - 1) * 4 3 8 n – 15 = (((n - 7) / 8) - 1) * 8 ……… Total: (n - 1) + (n - 3) + (n - 7) + (n - 15) + …log2n vezes
Análise de Complexidade da PB (3/3) Soma dos termos de uma PG