Algoritmos de Busca CONTEÚDO (1) Motivação (2) Busca Linear

Slides:



Advertisements
Apresentações semelhantes
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Advertisements

UFSC-CTC-INE INE Estruturas de Dados
Estruturas de Dados Marcio Gonçalves.
Pesquisa de Informação
Aula 10 Algoritmos de Busca
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-
Nivelamento de C: Vetores e Strings
Algoritmos de Ordenação
Algoritmos de Ordenação
Listas Encadeadas CONTEÚDO (1) Motivação (2) Definição (3) Operações
Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas.
Recursividade Prof. Rosana Palazon.
Principais famílias de algoritmos
Recursividade Prof. Alex F. V. Machado
Algoritmos e Estrutura de Dados I
Introdução aos Métodos de Acesso AULA 7 – Parte II Profa. Sandra de Amo GBC053 – BCC
Pesquisa em Memória Primária
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
HeapSort Filas de Prioridade – Heap
Pesquisa em Memória Primária – Árvores de Busca
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Pesquisa em Memória Primária
David Menotti Estruturas de Dados I DECOM – UFOP
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,
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
Algoritmos Escher.
Método de Ordenação: InsertionSort
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Marco Antonio Montebello Júnior
Marco Antonio Montebello Júnior
Algoritmos de Ordenação
Processamento da Informação BC-05045
Insertion Sort.
Aula prática 12 Listas Encadeadas
Algoritmos de Busca Parte II
Pesquisa em Memória Primária
Linguagem de Programação II Parte V
Algorítmos e estrutura de dados III
Complexidade de algoritmos e Classificação (Ordenação) de dados
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Aula 08 Medidas de posição - Prof. Diovani Milhorim
Universidade Católica de Pelotas Mestrado em Ciência da Computação
Hash tables Fábio Nakano.
Sistemas Especialistas
Fundamentos de Programação
Ordenação de Dados (III)
Ceça Moraes – Introdução à Programação SI1
Pesquisa Sequencial e Binária
Algoritmos de Ordenação
Árvores Binárias Profa. Patrícia A. Jaques Luiz Gonzaga Jr
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
CLASSIFICAÇÃO DE DADOS
Aula Prática 12 Listas Encadeadas Monitoria
Programação II Laboratório II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo - Transparências baseadas nos originais da Prof.
Métodos de Pesquisa: Seqüencial e Binária
Métodos de Ordenação Externa
Métodos de Pesquisa: Sequencial e Binária
Classificação (Ordenação) de dados
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.
USP – ICMC – SSC SSC0300 2º Semestre 2015
Classificação (Ordenação) de dados. Roteiro Contextualização e definições sobre Classificação Métodos de Classificação de Dados.
Transcrição da apresentação:

Algoritmos de Busca CONTEÚDO (1) Motivação (2) Busca Linear (3) Busca Binária

O processo usado para encontrar tal elemento é chamado busca (1) Motivação Buscando informação... Imagine um vetor de elementos no qual os objetos foram posicionados em determinada ordem. Dicionário ou um catálogo de telefones O arquivo da folha de pagamento de uma empresa Suponha que esse vetor exista e desejemos localizar determinado elemento dentro dele. pesquisar um nome num catálogo de telefones, uma palavra num dicionário ou determinado empregado num arquivo de pessoal. O processo usado para encontrar tal elemento é chamado busca Queremos descobrir um método eficiente para executar a busca

O método de busca mais simples é o da busca seqüencial ou linear (2) Busca Linear Busca Linear O método de busca mais simples é o da busca seqüencial ou linear cada item do vetor é examinado por vez e comparado ao item que se está procurando, até ocorrer uma coincidência. O(n)

Busca Linear (lista ordenada) Se a lista não estiver ordenada, talvez seja a única maneira de localizar algo dentro dela Entretanto, para localizar um item dentro de uma lista ordenada, há um algoritmo de busca linear mais eficiente O(n)

Por que o algoritmo anterior é mais eficiente do que o primeiro? (2) Busca Linear Busca Linear Por que o algoritmo anterior é mais eficiente do que o primeiro? Podemos fazer um algoritmo de busca ainda mais eficiente do que estes? Imagine um dicionário. Como você faria uma busca nele?

Se forem iguais, a busca terminou com sucesso. (3) Busca Binária Busca Binária Compare o elemento sendo procurado ao elemento posicionado no meio do vetor. Se forem iguais, a busca terminou com sucesso. Se o elemento do meio for maior que o elemento sendo procurado, o processo de busca será repetido na primeira metade do vetor Caso contrário, o processo será repetido na segunda metade. Por causa da divisão pela metade da lista sendo pesquisada, esse método de busca é chamado busca binária.

Busca Binária X Busca Linear Toda vez que uma comparação é feita, o número de elementos a pesquisar é cortado pela metade. Para os vetores grandes e ordenados, esse método é mais eficiente do que a busca linear. O(log n)

É possível implementar uma busca binária em uma lista ligada? Exercícios É possível implementar uma busca binária em uma lista ligada? Implemente programas que utilizem os algoritmos apresentados nesta aula. Busca linear numa lista de pessoas em um cinema (chave de busca é o CPF) Fazer versão com vetor e com lista encadeada Busca linear numa lista de alunos em um diário de classe eletrônico (chave de busca é a matrícula) Busca binária em um vetor de alunos que represente um diário de classe eletrônico Fazer versão iterativa e recursiva