Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO...

Post on 16-Jul-2020

2 views 0 download

Transcript of Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO...

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