Beruflich Dokumente
Kultur Dokumente
Roteiro
Roteiro
Contextualizao
Apresentaremos e discutiremos diferentes estratgias para efetuarmos a pesquisa (busca) de um elemento especfico em um conjunto de dados.
Esta operao muito importante, pois encontrada com muita freqncia em diversas aplicaes. Apresentaremos os mtodos de pesquisa seqencial e binria sobre a estrutura de dados vetor.
Roteiro
Forma mais simples de realizar pesquisas. Metodologia: Percorre o vetor, elemento por elemento, verificando se o elemento desejado est presente no vetor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
14 21
45 12
86 98 46 53 24
15 90 47
Pergunta: Como verificar se o elemento 90 est presente no vetor acima? Pergunta: Quantas comparaes so necessrias para achar o elemento 90?
Caractersticas
Extremamente simples o algoritmo; Pode ser muito ineficiente quando o conjunto de dados muito grande.
Desempenho Computacional
Anlise de Complexidade da PS
os
casos
extremos
Perguntas
Roteiro
Metodologia:
Consiste em comparar alguns itens do vetor com o dado (chave alvo) que deseja-se encontrar.
Metodologia (Cont...):
Passos do processo:
1) Checar onde est o ponto mdio do vetor. 2) Comparar o elemento do ponto mdio (EPM) com a chave alvo (CA). 3) Caso no 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, ento a pesquisa para com sucesso, pois achou o dado desejado!
14
21
45
12
86
98
46
53
24
15
90
47
Aps ordenao:
1 2 3 4 5 6 7 8
!!!???
9 10 11 12 13 14 15 16
12
14
15
21
24
45
46
47
53
86
90
98
Pergunta: Como verificar se o elemento 90 est presente no vetor acima? Pergunta: Quantas comparaes so necessrias para achar o elemento 90? Pergunta: Como verificar se o elemento 71 est presente no vetor acima? Pergunta: Quantas comparaes so necessrias para achar o elemento 71?
(n-1)/2
(n-1)/2
(n-3)/4
(n-3)/4
(n-3)/4
(n-3)/4
(n-7)/8
1 .....
(n-7)/8
(n-7)/8
(n-7)/8
(n-7)/8
1 .....
(n-7)/8
(n-7)/8
1 .....
(n-7)/8
.....
Pior Caso: quando o dado desejado encontra-se na folha da rvore ou no existe. Portanto: O(log2n) Melhor Caso: quando o dado desejado encontra-se na raiz da rvore. Portanto: O(1) Caso Mdio: quando o dado desejado encontra-se prximo do meio da rvore. Portanto: O(log2n)
0 1 2 3
Total:
Total
log 2 n i 1
1 2 4 8
n 2 1 n log
log 2 n i 1
2 1 n log
i
n log 2 n
log 2 n
i 1
2i
i 1
2i
n
x n 1 1 xk x 1 k 0
log 2 n
i 1
O(n)
1,00E+01 5,00E+01 1,00E+02 5,00E+02 1,00E+03 5,00E+03 1,00E+04 5,00E+04 1,00E+05 5,00E+05 1,00E+06 5,00E+06 1,00E+07
O(log2n)
3,32E+00 5,64E+00 6,64E+00 8,97E+00 9,97E+00 1,23E+01 1,33E+01 1,56E+01 1,66E+01 1,89E+01 1,99E+01 2,23E+01 2,33E+01