Aula 10 Algoritmos de Busca

Slides:



Advertisements
Apresentações semelhantes
Aquiles Burlamaqui AULA 09
Advertisements

LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Programação em Java Prof. Maurício Braga
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 04 Aquiles Burlamaqui UERN
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 07 Aquiles Burlamaqui UERN
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
Recursividade Prof. Rosana Palazon.
Listas encadeadas Prof. Rosana Palazon.
Recursividade Prof. Alex F. V. Machado
Árvores.

Pesquisa em Memória Primária
Pesquisa em Árvores Digitais
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
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
Automato de Pilha.
Pesquisa em Memória Primária
Singleton.
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
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.
AULA – Linguagem C – Vetores, Ponteiros e Estruturas
Dividir-e-Conquistar
Listas com Ponteiros Listas encadeadas Listas circulares.
Laboratório de Programação de Computadores II 2S/2009.
Laboratório de Programação de Computadores II Aula 1 2S/2009.
Listas Encadeadas.
Algoritmos e Estrutura de Dados: Uma pequena motivação
Listas e algoritmos (em Scratch)
Algoritmos de Ordenação
exercícios listas encadeadas
Algoritmos de Busca Parte II
Introdução à Programação
IAED Tagus, 2009/2010 Introdução à Programação em C (I)
Pesquisa em Memória Primária
Construção de Algoritmos AULA 04
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 05 Aquiles Burlamaqui UERN
Construção de Algoritmos AULA 03
Árvores Binárias de Pesquisa
Heap Sort TPA – Prof. Mateus Costa
Algorítmos e estrutura de dados III Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
UNIDADE 6 - complemento Funções recursivas
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Métodos de Ordenação e Busca
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Mergesort Katia Guimarães.
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.
Procedimentos e Funções
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto.
Árvore Binária de Busca
Árvores Binárias Profa. Patrícia A. Jaques Luiz Gonzaga Jr
Estruturas de Dados Aula 15: Árvores
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
Programação de Computadores I – Arquivos
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
DCC 001 Programação de Computadores 2º Semestre de 2011
Algoritmo e Estrutura de Dados I
Construção de Algoritmos AULA 05
Algoritmo e Estrutura de Dados I Aulas 12 – Linguagem C Strings Márcia Marra
Professor Luiz José Hoffmann Filho
Algoritmo e Estrutura de Dados I Aulas 15 – Linguagem C Alocação Dinâmica de Memória Márcia Marra
Busca Sequencial Int pseq(int x, int n, int v[]){ for(i=0; i
Métodos de Pesquisa e Ordenação
Transcrição da apresentação:

Aula 10 Algoritmos de Busca Aquiles Burlamaqui UERN

Roteiro Motivação Definição Tipos de Algoritmos Exemplos Prática

Motivação A maioria dos algoritmos estudados por cientistas da computação que resolvem problemas são algortimos de busca. Uma vez que armazenada uma informação, em um dado momento você precisará recuperá-la.

Definição “Algoritmo que toma um problema como entrada e retorna a solução para o problema, geralmente após resolver um número possível de soluções.” “Um algoritmo de busca é um algoritmo que recebe um parâmetro C e tenta achar um registro no arquivo (ou tabela) cuja chave é C. O algoritmo retorna um ponteiro para o registro, ou NULL (ou índice inválido) caso não ache o registro.”

Tipos de Algoritmos de Busca Busca em vetor ordenado Busca seqüencial Busca Binária

Busca Seqüencial Problema: determinar se um dado número está ou não está em um dado vetor ordenado.   Mais precisamente, dado um número x e um vetor crescente  v[0..n-1],  encontrar um índice  m  tal que  v[m] == x .

Busca Seqüencial // A função abaixo recebe um número x e um vetor // crescente v[0..n-1]. Ela devolve um índice m // em 0..n-1 tal que v[m] == x. Se tal m não existe, // a função devolve -1. int buscaSequencial (int x, int n, int v[]) { int m = 0; while (m < n && v[m] < x) ++m; if (m < n && v[m] == x) return m; else return -1; }

Busca Binária A chave é comparada com o elemento no meio da tabela. Se for igual, a busca terminou. Caso contrário, ela deve continuar ou na metade inferior (se a chave for menor que o elemento do meio) ou na metade superior da tabela (se a chave for maior que o elemento do meio).

Busca Binária // A função abaixo recebe um número x e um vetor // crescente v[0..n-1]. Ela devolve um índice m // tal que v[m] == x ou devolve -1 se tal m não // existe. int buscaBinaria (int x, int n, int v[]) { int e, m, d; e = 0; d = n-1; while (e <= d) { m = (e + d)/2; if (v[m] == x) return m; if (v[m] < x) e = m + 1; else d = m - 1; } return -1;

Busca Binária Sempre teremos v[e-1]   <   x   <   v[d+1] . É a base de muitos algoritmos eficientes para diversos problemas.