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

Slides:



Advertisements
Apresentações semelhantes
UFSC-CTC-INE INE Estruturas de Dados
Advertisements

Ordenação de Dados em Memória
Linguagem de Programação X Métodos de Pesquisa
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
Á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)
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.

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
Árvores Balanceadas (AVL)
Noções Básicas de Modelagem
Árvores Binárias de Pesquisa (ABP)
Árvores e Árvores Binárias
Hashing (Tabela de Dispersão)
Métodos de Classificação por Seleção: HeapSort
Classificação de dados por Troca: QuickSort
Método de Ordenação: InsertionSort
Introdução a Análise de Complexidade de Algoritmos
Métodos de Classificação por Seleção
Alexandre Parra Site: Os Pilares da OO em Java Alexandre Parra Site:
Contextualização da disciplina DAD-II Prof. Alexandre Parra
Tópicos Preliminares Prof. Alexandre Parra
CAP-223 Árvore através de uma Árvore Binária A BCDE FGHIJK A BC D E FGHIJK.
Ordenação de Dados.
Marco Antonio Montebello Júnior
Algoritmos de Ordenação
Insertion Sort.
Algoritmos de ordenação
ICC2 Aula 7 Fábio Nakano.
Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária
Complexidade de algoritmos e Classificação (Ordenação) de dados
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
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
Árvores AVL Balanceadas (Árvore Binária Balanceada)
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.
© 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
CLASSIFICAÇÃO DE DADOS
ATAL – Prof. Jorge Figueiredo Ordenação AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação.
Métodos de Pesquisa: Seqüencial e Binária
Árvores Balanceadas (AVL)
Métodos de Ordenação Externa
Métodos de Pesquisa: Sequencial e Binária
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 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 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?

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)

Complexidade da Pesquisa Binária Nível da partição Segmentos Comparaçõ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

Pesquisa Seqüencial versus Binária