Métodos de Pesquisa: Seqüencial e Binária

Slides:



Advertisements
Apresentações semelhantes
Linguagem de Programação X Métodos de Pesquisa
Advertisements

Linguagem de Programação IX Métodos de Ordenação
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.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Algoritmos de Busca CONTEÚDO (1) Motivação (2) Busca Linear
Algoritmos BUSCA E INSERÇÃO
Análise Projeto de Algoritmos
Árvore Binária de Busca
Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n)

Pesquisa em Memória Primária
HeapSort Filas de Prioridade – Heap
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
FACENS – Engenharia da Computação Lógica Computacional II
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.
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,
Classificação e Pesquisa de Dados
Classificação (Ordenação) de dados
Métodos de Pesquisa: Seqüencial e Binária
Árvores e Árvores Binárias
Métodos de Classificação por Seleção: HeapSort
Método de Ordenação: InsertionSort
Métodos de Classificação por Seleção
CAP-223 Árvore através de uma Árvore Binária A BCDE FGHIJK A BC D E FGHIJK.
Marco Antonio Montebello Júnior
Algoritmos de Ordenação
Insertion Sort.
Algoritmos de ordenação
Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária
Árvore de Pesquisa Memória Secundária Engenharia de Computação - UFG.
Complexidade de algoritmos e Classificação (Ordenação) de dados
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Universidade Católica de Pelotas Mestrado em Ciência da Computação
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Estruturas de Dados e Ordenação
Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um dado pode ser qualquer.
Ordenação de Dados (III)
Ceça Moraes – Introdução à Programação SI1
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Pesquisa Sequencial e Binária

Árvores Vermelho-Preto
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
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Prof. Hilton Cardoso Marins Junior

Algoritmos FPT para o Problema da k-Cobertura por Vértices
CLASSIFICAÇÃO DE DADOS
AVL Árvores Equilibradas Sumário AVL Splay B Vermelho-Preto AA e BB Multidimensionais quaternárias k-d [Pesquisa Lexicográfica tries multivia tries binárias.
ATAL – Prof. Jorge Figueiredo Ordenação AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação.
Busca Competitiva Disciplina: Inteligência Artificial
Árvores de Busca Binária
Estrutura de dados Aula 6 - hash
Árvores Balanceadas (AVL)
Hashing (Tabela de Dispersão)
Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por Adolfo Almeida Duran (UFBA)
Métodos de Pesquisa: Sequencial e Binária
Árvores e Árvores Binárias
Ordenação Professor Paulo Gomide 27 de outubro de 2015.
Classificação (Ordenação) de dados
Classificação (Ordenação) de dados. Roteiro Contextualização e definições sobre Classificação Métodos de Classificação de Dados.
Métodos de Pesquisa: Seqüencial e Binária
Transcrição da apresentação:

Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Roteiro Contextualização Pesquisa Sequencial Pesquisa Binária Pesquisa Hash – espalhamento Pesquisa em árvore

Roteiro Contextualização Pesquisa Sequencial Pesquisa Binária Pesquisa Hash – espalhamento Pesquisa em árvore

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 frequê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 hash – espalhamento Pesquisa em árvore

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 hash – espalhamento Pesquisa em árvore

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?

Ilustração de pesquisa usando PB 1 (n-3)/4 1 (n-3)/4 (n-3)/4 1 (n-3)/4 (n-7)/8 1 (n-7)/8 .....

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)

Pesquisa Seqüencial versus Binária