View
74
Download
1
Category
Preview:
Citation preview
# Pesquisa e Ordenação #Aula 12 – Pesquisa de Dados
(Sequencial e Binária)Prof. Leinylson Fontinele Pereira
Nas aulas anteriores...
Métodos de ordenação...
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
O que vamos aprender?
Pesquisa de dados # Sequencial
# Binário
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca
00:55
Definição
# Recuperação de dados armazenados em um repositório oubase de dados
Tipo de busca depende dos dados
# Dados estão estruturados (vetor, lista, árvore)
# Dados ordenados (ou não ordenados)
# Valores duplicadosPesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca
00:55
Baseada em uma chave
# A chave de busca é o campo do item utilizado para comparação
• Valor armazenado em um array de inteiros
• Campo de uma struct
• etc
# É por meio dela que sabemos se dado elemento é o que buscamos
• No caso do item estar presente no conjunto de elementos, seus dados sãoretornados para o usuário
Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Tipos de busca e métodos abordados
00:55
Busca
# Dados armazenados em um vetor
# Dados ordenados
Métodos
# Busca Linear
# Busca Ordenada
# Busca BináriaPesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Linear
00:55
Basicamente, esse algoritmo percorre o array que contém osdados desde a sua primeira posição até a última
Assume que os dados não estão ordenados, por isso anecessidade de percorrer o array do seu início até o seu fim
Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Linear: Funcionamento
00:55
Para cada posição do array, o algoritmocompara se a posição atual do array é igual aovalor buscado.# Se os valores forem iguais, a busca termina
# caso contrário, a busca continua com a próxima posição do array
Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Linear: Ilustrando o Funcionamento
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Sequencial
Busca Linear: Algoritmo
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Linear: Exemplo
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Linear: Complexidade
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Considerando um array com 𝑁 elementos
#𝑂(1), melhor caso: o elemento é o primeiro do array
#𝑂(𝑁), pior caso: o elemento é o último do array
#𝑂(𝑁/2), caso médio
Busca Sequencial Ordenada: Funcionamento
00:55
Assume que os dados estão ordenados
Se o elemento procurado for menor do que o valor emuma determinada posição do array, temos a certeza deque ele não estará no restante do array
# Isso evita a necessidade de percorrer o array do seu início atéo seu fim
Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Sequencial Ordenada: Algoritmo
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Sequencial Ordenada: Exemplo
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Sequencial Ordenada: Desvantagens
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Ordenar um array também tem um custo# Esse custo é superior ao custo da busca sequencial no seu pior caso
Se for para fazer a busca de um único elemento, nãocompensa ordenar o array# Porém, se mais de um elemento for recuperado do array, o esforço de
ordenar o array pode compensar
Busca Binária
00:55
A Busca Sequencial Ordenada é uma estratégia de buscaextremamente simples# Ela percorre todo o array linearmente
# Não utiliza adequadamente a ordenação dos dados
Uma estratégia de busca mais sofisticada é a Busca Binária# Muito mais eficiente do que a Busca Sequencial Ordenada
Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Binária: Funcionamento
00:55
É uma estratégia baseada na idéia de dividir para conquistar
# A cada passo, esse algoritmo analisa o valor do meio do array
# Caso esse valor seja igual ao elemento procurado, a busca termina
# Caso contrário
• Se o elemento do meio vier antes da chave, então a busca continua nametade posterior do vetor,
• Caso contrário, a busca continua na metade anterior do vetor.
Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Binária: Ilustrando o Funcionamento
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Binária
Busca Binária: Algoritmo
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Binária: Exemplo
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca Binária: Complexidade
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Considerando um array com 𝑁 elementos, o tempo de execução é:
# 𝑂(1), melhor caso: o elemento procurado está no meio do array;
# 𝑂(log2 𝑁), pior caso: o elemento não existe;
# 𝑂(log2 𝑁), caso médio.
Sequencial vs Binária
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
00:55
Busca em Vetor de Struct
Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca em Vetor de Struct
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca em Vetor de Struct
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Busca em Vetor de Struct
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
A busca é baseada em uma chave
# A chave de busca é o campo do item utilizado para comparação• Valor armazenado em um array de inteiros
• Campo de uma struct
• etc
É por meio dela que sabemos se dado elemento é o que buscamos
No caso do item estar presente no conjunto de elementos, seus dados são retornados para o usuário
Busca em Vetor de Struct
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Ou seja, devemos modificar o algoritmo para que a comparação das chaves seja feita utilizando um determinado campo da struct
Busca em Vetor de Struct
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Material: https://sites.google.com/site/leinylsonnassau
00:55
Aula baseada no material de:
Busca em arrays, Prof. André Backes
Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Nesta aula aprendemos...
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Pesquisa de dados # Sequencial
# Binário
Na próxima aula veremos...
Pesquisa de dados# Hashing
00:55 Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
00:55
O Mês acabou, mas a luta contra o câncer não!
Pesquisa e Ordenação: Aula 12 – Pesquisa de Dados (Sequencial e Binária)
Recommended