52
# Pesquisa e Ordenação # Aula 07 Métodos de Ordenação (Bin Sort - Bucket Sort) Prof. Leinylson Fontinele Pereira

Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Embed Size (px)

Citation preview

Page 1: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

# Pesquisa e Ordenação #Aula 07 – Métodos de Ordenação

(Bin Sort - Bucket Sort)

Prof. Leinylson Fontinele Pereira

Page 2: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Na aula anterior...

Métodos de Ordenação# Quick Sort

09:21 Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 3: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

O que vamos aprender?

Métodos de Ordenação# Bucket Sort

09:21 Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 4: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Vamos começar?

09:21 4Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 5: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

09:21 5

Ordenação comBucket Sort

Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 6: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Pressupõe que a entrada consiste em números inteirosdistribuídos uniformemente sobre um intervalo

Ou seja, há um limite nos valores das chaves.

O intervalo é então dividido em 𝑛 subintervalos detamanhos iguais, os chamados buckets (baldes)

Cada chave vai para o balde correspondente à suafaixa de valor

Page 7: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:20Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Complexidade:𝑂(𝑛)

Quantidade de dados:

Muitos, porém, com valores limitados.

Um Bucket Sort com apenas dois buckets é na verdade oQuicksort (com pivoteamento ruim).

Estabilidade e Adaptabilidade

Dependem do algoritmo de ordenação interna dos buckets.

Page 8: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 9: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

A lista de idades é: 41, 15, 17, 32, 18, 28, 77 𝑒 54

Page 10: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

A lista de idades é: 41, 15, 17, 32, 18, 28, 77 𝑒 54

Page 11: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 12: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

A lista final será: 15, 17, 18, 28, 32, 41, 54, 77

Page 13: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 14: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Cada balde é posteriormente ordenado, isoladamente dos demais

Page 15: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Considerando o limite [0,1), e chaves com dois dígitosdecimais, determinamos o número de baldes como:

N = 10 (0, …9) A função para determinação do índice balde correto é

𝐵[ 𝑛 ∗ 𝐴[𝑖] ]

Page 16: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

𝐴 = (0.5, 0.1, 0.3, 0.4, 0.3, 0.2, 0.1, 0.1, 0.5, 0.4, 0.5)

Lista ordenada

0.1, 0.1, 0.1, 0.2, 0.3, 0.3, 0.4, 0.4, 0.5, 0.5, 0.5

Page 17: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Bucket

A

1 2 3 4 5 6

.74 .17 .26 .72 .39 .21

Page 18: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Bucket: Loop 1

A

1 2 3 4 5 6

.74 .17 .26 .72 .39 .21

B

0 1 2 3 4 5

n=6

Page 19: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Bucket: Loop 2

A

1 2 3 4 5 6

.17 .26 .72 .39 .21

B

0 1 2 3 4 5

B[ n A[i] ] = B[ 6X.74 ]=B[ 4.44 ]=B[4]

Para n=6, i=1

.74

Page 20: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Bucket: Loop 2

A

1 2 3 4 5 6

.74 .26 .72 .39 .21

B

0 1 2 3 4 5

B[ n A[i] ] = B[ 6X.17 ]=B[ 1.02 ]=B[1]

Para n=6, i=2

.17

.74

Page 21: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Bucket: Loop 2

A

1 2 3 4 5 6

.74 .17 .72 .39 .21

B

0 1 2 3 4 5

B[ n A[i] ] = B[ 6X.26 ]=B[ 1.56 ]=B[1]

Para n=6, i=3

.74

.26

.17

Page 22: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Bucket: Loop 2

A

1 2 3 4 5 6

.74 .17 .26 .39 .21

B

0 1 2 3 4 5

B[ n A[i] ] = B[ 6X.72 ]=B[ 4.32 ]=B[4]

Para n=6, i=4

.74

.72

.17.26

Page 23: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Bucket: Loop 2

A

1 2 3 4 5 6

.74 .17 .26 .72 .21

B

0 1 2 3 4 5

B[ n A[i] ] = B[ 6X.39 ]=B[ 2.34 ]=B[2]

Para n=6, i=5

.74

.39

.17.26

.72

Page 24: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Bucket: Loop 2

A

1 2 3 4 5 6

.74 .17 .26 .72 .39

B

0 1 2 3 4 5

B[ n A[i] ] = B[ 6X.94 ]=B[ 5.64 ]=B[5]

Para n=6, i=6

.74

.94

.17.26

.72.39

Page 25: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Bucket: Fim do Loop 2

A

1 2 3 4 5 6

.74 .17 .26 .72 .39 .94

B

0 1 2 3 4 5

.74.17

.26

.72.39 .94

Page 26: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Bucket: Loop 3

A

1 2 3 4 5 6

.74 .17 .26 .72 .39 .94

B

0 1 2 3 4 5

Aplica insertion sort em cada balde

.17 .26 .72 .74 .94.39

Page 27: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Bucket

A

1 2 3 4 5 6

.74 .17 .26 .72 .39 .94

B

0 1 2 3 4 5

Concatena os baldes em ordem

.17 .26 .72 .74 .94.39

B0 1 2 3 4 5

.17 .26 .39 .72 .74 .94

Saída ordenada

Page 28: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Exemplo - Bucket Sort

.78

.17

.39

.26

.72

.94

.21

.12

.23

.68

0

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

10

.21

.12 /

.72 /

.23 /

.78

.94 /

.68 /

.39 /

.26

.17

/

/

/

/

A B

Distribuindo dentro dos buckets

Page 29: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Exemplo - Bucket Sort0

1

2

3

4

5

6

7

8

9

.23

.17 /

.78 /

.26 /

.72

.94 /

.68 /

.39 /

.21

.12

/

/

/

/

Ordenando cada bucket

Page 30: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Exemplo - Bucket Sort

.17.12 .23 .26.21 .39 .68 .78.72 .94 /

Vetor ordenado

Page 31: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 32: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 33: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 34: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 35: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 36: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 37: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 38: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 39: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 40: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 41: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 42: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 43: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 44: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Ordenação com Bucket Sort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 45: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Concluindo...

09:36 45Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 46: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Teorema do macaco infinito

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 47: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

BozoSort (Bogo Sort)

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 48: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

BozoSort

09:36Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 49: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Nesta aula aprendemos...Métodos de Ordenação

# Bucket Sort

09:36 Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 50: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Na próxima aula veremos...Métodos de Ordenação

# Shell Sort

09:36 Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 51: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Material: https://sites.google.com/site/leinylsonnassau

09:36

Material baseado nas aulas de:

MD. Shakhawat Hossain, Student of Computer Science & Engineering Dept. University of Rajshahi

Pesquisa e Ordenação: Aula 07 – Métodos de Ordenação (Bin Sort - Bucket Sort)

Page 52: Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)

Alguma Dúvida?

09:36

Até a próxima aula...

[email protected]