aula #2 - algoritmos: busca e ordenação · aula #2 - algoritmos: busca e ordenação eduardo...
TRANSCRIPT
Aula #2 - Algoritmos: Busca e OrdenaçãoEDUARDO CUNHA DE ALMEIDA
INDU
STRI
A 4.
0Pr
oces
sam
ento
de
Bi
g Da
ta
PÓS ENGENHARIA INDUSTRIAL 4.0
Agenda
UNIVERSIDADE FEDERAL DO PARANÁ 2
- Busca Sequencial e Binária - Ordenação: Seleção e QuickSort - Listas e SkipList - Arvores Balanceadas - Hash - Compressão
PÓS ENGENHARIA INDUSTRIAL 4.0
Agenda
UNIVERSIDADE FEDERAL DO PARANÁ 3
- Busca Sequencial e Binária - Ordenação: Seleção e QuickSort - Listas e SkipList - Arvores Balanceadas - Hash - Compressão
PÓS ENGENHARIA INDUSTRIAL 4.0
Busca sequencial: busca(42)
UNIVERSIDADE FEDERAL DO PARANÁ 4
- Considere o conjunto de dados abaixo (não ordenado):Table 1
Posição 0 1 2 3 4 5 6
Valor 16 23 5 42 15 8 4
Sabemos também que o conjunto tem 7 elementos (0->6) !!!! ex.: Buscar 42 requer várias comparações Buscar o menor valor requer “n-1” comparações (ineficiente)
42 != 16
PÓS ENGENHARIA INDUSTRIAL 4.0UNIVERSIDADE FEDERAL DO PARANÁ 5
- Considere o conjunto de dados abaixo (não ordenado):Table 1
Posição 0 1 2 3 4 5 6
Valor 16 23 5 42 15 8 4
42 != 16
Busca sequencial: busca(42)
Sabemos também que o conjunto tem 7 elementos (0->6) !!!! ex.: Buscar 42 requer várias comparações Buscar o menor valor requer “n-1” comparações (ineficiente)
PÓS ENGENHARIA INDUSTRIAL 4.0UNIVERSIDADE FEDERAL DO PARANÁ 6
- Considere o conjunto de dados abaixo (não ordenado):Table 1
Posição 0 1 2 3 4 5 6
Valor 16 23 5 42 15 8 4
ex.: Buscar 42 requer várias comparações Buscar o menor valor requer “n-1” comparações (ineficiente)
42 != 16
42 != 23
Busca sequencial: busca(42)
PÓS ENGENHARIA INDUSTRIAL 4.0UNIVERSIDADE FEDERAL DO PARANÁ 7
- Considere o conjunto de dados abaixo (não ordenado):Table 1
Posição 0 1 2 3 4 5 6
Valor 16 23 5 42 15 8 4
ex.: Buscar 42 requer várias comparações Buscar o menor valor requer “n-1” comparações (ineficiente)
42 != 16
42 != 23
42 != 5
Busca sequencial: busca(42)
PÓS ENGENHARIA INDUSTRIAL 4.0UNIVERSIDADE FEDERAL DO PARANÁ 8
- Considere o conjunto de dados abaixo (não ordenado):Table 1
Posição 0 1 2 3 4 5 6
Valor 16 23 5 42 15 8 4
ex.: Buscar 42 requer várias comparações Buscar o menor valor requer “n-1” comparações (ineficiente)
42 != 16
42 != 23
42 != 5
42 = 42
Busca sequencial: busca(42)
PÓS ENGENHARIA INDUSTRIAL 4.0UNIVERSIDADE FEDERAL DO PARANÁ 9
Como evitar a busca sequencial?
PÓS ENGENHARIA INDUSTRIAL 4.0
Busca binária
UNIVERSIDADE FEDERAL DO PARANÁ 10
- Considere o conjunto de dados abaixo (ordenado):
Posição 0 1 2 3 4 5 6
Valor 4 5 8 15 16 23 42
busca(42)
menor maiormeio
42 >= 15meio=(menor+maior)/2
PÓS ENGENHARIA INDUSTRIAL 4.0
Busca binária
UNIVERSIDADE FEDERAL DO PARANÁ 11
- Considere o conjunto de dados abaixo (ordenado):
Posição 0 1 2 3 4 5 6
Valor 4 5 8 15 16 23 42
busca(42)
menor maiormeio
42 >= 16meio=(menor+maior)/2
PÓS ENGENHARIA INDUSTRIAL 4.0
Busca binária
UNIVERSIDADE FEDERAL DO PARANÁ 12
- Considere o conjunto de dados abaixo (ordenado):
Posição 0 1 2 3 4 5 6
Valor 4 5 8 15 16 23 42
busca(42)
maiormenor/meio
42 >= 23meio=(menor+maior)/2
PÓS ENGENHARIA INDUSTRIAL 4.0
Busca binária
UNIVERSIDADE FEDERAL DO PARANÁ 13
- Considere o conjunto de dados abaixo (ordenado):
Posição 0 1 2 3 4 5 6
Valor 4 5 8 15 16 23 42
busca(42) 42 = 42meio=(menor+maior)/2
PÓS ENGENHARIA INDUSTRIAL 4.0
Resumindo
UNIVERSIDADE FEDERAL DO PARANÁ 14
Posição
0 1 2 3 4 5 6
Valor 4 5 8 15 16 23 42
4 5 8 15 16 23 42
42 >= 15
PÓS ENGENHARIA INDUSTRIAL 4.0
Resumindo
UNIVERSIDADE FEDERAL DO PARANÁ 15
Posição
0 1 2 3 4 5 6
Valor 4 5 8 15 16 23 42
4 5 8 15 16 23 42
23 4215 16
42 >= 15
42 >= 23
42 = 42
PÓS ENGENHARIA INDUSTRIAL 4.0
Agenda
UNIVERSIDADE FEDERAL DO PARANÁ 16
- Busca Sequencial e Binária - Ordenação: Seleção e QuickSort - Listas e SkipList - Arvores Balanceadas - Hash - Compressão
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação
Facilita a busca, pois em coleções de dados, como em bancos de dados, as tuplas (ou linhas) não possuem uma ordem específica
UNIVERSIDADE FEDERAL DO PARANÁ 17
Ordena
Posição 0 1 2 3 4 5 6
Valor 4 5 8 15 16 23 42
Posição 0 1 2 3 4 5 6
Valor 16 23 5 42 15 8 4
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação (seleção)
UNIVERSIDADE FEDERAL DO PARANÁ 18
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
4 23 5 42 15 8 164 5 23 42 15 8 164 5 8 42 15 23 164 5 8 15 42 23 164 5 8 15 16 23 42
Iterações
1
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação (seleção)
UNIVERSIDADE FEDERAL DO PARANÁ 19
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
4 23 5 42 15 8 164 5 23 42 15 8 164 5 8 42 15 23 164 5 8 15 42 23 164 5 8 15 16 23 42
Iterações
2
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação (seleção)
UNIVERSIDADE FEDERAL DO PARANÁ 20
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
4 23 5 42 15 8 164 5 23 42 15 8 164 5 8 42 15 23 164 5 8 15 42 23 164 5 8 15 16 23 42
Iterações
3
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação (seleção)
UNIVERSIDADE FEDERAL DO PARANÁ 21
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
4 23 5 42 15 8 164 5 23 42 15 8 164 5 8 42 15 23 164 5 8 15 42 23 164 5 8 15 16 23 42
Iterações
4
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação (seleção)
UNIVERSIDADE FEDERAL DO PARANÁ 22
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
4 23 5 42 15 8 164 5 23 42 15 8 164 5 8 42 15 23 164 5 8 15 42 23 164 5 8 15 16 23 42
Iterações
5
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação (seleção)
UNIVERSIDADE FEDERAL DO PARANÁ 23
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
4 23 5 42 15 8 164 5 23 42 15 8 164 5 8 42 15 23 164 5 8 15 42 23 164 5 8 15 16 23 424 5 8 15 16 23 42
Iterações
6
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação QuickSort
UNIVERSIDADE FEDERAL DO PARANÁ 24
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
5 4 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 42elemento pivot
Iterações
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação QuickSort
UNIVERSIDADE FEDERAL DO PARANÁ 25
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
5 4 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 42elemento pivot
Iterações
1
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação QuickSort
UNIVERSIDADE FEDERAL DO PARANÁ 26
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
5 4 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 42
Iterações{ {
n/2 n/21
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação QuickSort
UNIVERSIDADE FEDERAL DO PARANÁ 27
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
5 4 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 42elemento pivot
Iterações
1
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação QuickSort
UNIVERSIDADE FEDERAL DO PARANÁ 28
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
5 4 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 42elemento pivot
Iterações
2
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação QuickSort
UNIVERSIDADE FEDERAL DO PARANÁ 29
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
5 4 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 42
Iterações
2
{n/4
{n/4
{
n/4
{
n/4
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação QuickSort
UNIVERSIDADE FEDERAL DO PARANÁ 30
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
5 4 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 42elemento pivot
Iterações
2
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação QuickSort
UNIVERSIDADE FEDERAL DO PARANÁ 31
Posição 0 1 2 3 4 5 6Valor 16 23 5 42 15 8 4
5 4 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 424 5 8 15 16 23 42
Iterações
3
Pior caso Melhor caso
Seleção n2 n2
QuickSort n2/2 n(log n)
MergeSort n(log n) n/2(log n)
PÓS ENGENHARIA INDUSTRIAL 4.0
Ordenação
UNIVERSIDADE FEDERAL DO PARANÁ 32
Melhor e pior caso em diferentes algoritmos
PÓS ENGENHARIA INDUSTRIAL 4.0UNIVERSIDADE FEDERAL DO PARANÁ 33
Será possível ter uma estrutura para armazenar dados sem necessidade de um algoritmo de ordenação?
EDUARDO CUNHA DE ALMEIDA
INDU
STRI
A 4.
0Pr
oces
sam
ento
de
Bi
g Da
ta
Aula #2 - Algoritmos: Busca e Ordenação