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

34
Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA INDUSTRIA 4.0 Processamento de Big Data

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

Page 1: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

Aula #2 - Algoritmos: Busca e OrdenaçãoEDUARDO CUNHA DE ALMEIDA

INDU

STRI

A 4.

0Pr

oces

sam

ento

de

Bi

g Da

ta

Page 2: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 3: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 4: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 5: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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)

Page 6: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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)

Page 7: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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)

Page 8: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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)

Page 9: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

PÓS ENGENHARIA INDUSTRIAL 4.0UNIVERSIDADE FEDERAL DO PARANÁ 9

Como evitar a busca sequencial?

Page 10: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 11: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 12: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 13: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 14: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 15: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 16: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 17: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 18: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 19: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 20: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 21: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 22: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 23: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 24: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 25: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 26: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 27: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 28: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 29: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 30: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 31: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 32: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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

Page 33: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

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?

Page 34: Aula #2 - Algoritmos: Busca e Ordenação · Aula #2 - Algoritmos: Busca e Ordenação EDUARDO CUNHA DE ALMEIDA 4.0 ocessamento de Big Data

EDUARDO CUNHA DE ALMEIDA

INDU

STRI

A 4.

0Pr

oces

sam

ento

de

Bi

g Da

ta

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