1/18/2014eda - prof. paulemir campos1 classificação de dados upe – caruaru – sistemas de...
TRANSCRIPT
![Page 1: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/1.jpg)
04/11/23 EDA - Prof. Paulemir Campos 1
Classificação de Dados
UPE – Caruaru – Sistemas de InformaçãoDisciplina: Estrutura de Dados e ArquivoProf.: Paulemir G. Campos
![Page 2: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/2.jpg)
04/11/23 EDA - Prof. Paulemir Campos 2
Conteúdo
Classificação de Dados: Bubble-sort Quick-sort Heap-sort Merge-sort
Aplicações
![Page 3: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/3.jpg)
04/11/23 EDA - Prof. Paulemir Campos 3
Classificação de Dados: Introdução Conjunto Ordenado: Elementos
dispostos sob uma determinada ordem. Objetivos da Classificação:
Facilitar a recuperação; Tornar mais eficiente o acesso aos dados.
Tipos de Classificação: Interna: Todos os registros estão na
memória principal; Externa: Alguns registros podem estar em
dispositivos auxiliares de armazenamento.
![Page 4: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/4.jpg)
04/11/23 EDA - Prof. Paulemir Campos 4
Classificação de Dados: Introdução Veremos quatro algoritmos de
classificação interna de dados: Classificação por Troca
Algoritmo Bubble-sort Algoritmo Quick-sort
Classificação por Seleção Algoritmo Heap-sort
Classificação por Intercalação Algoritmo Merge-sort
![Page 5: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/5.jpg)
04/11/23 EDA - Prof. Paulemir Campos 5
Classificação por Troca
Método Bubble-Sort A cada passo, cada elemento de um
vetor C (vetor de chaves) é comparado com o seu sucessor, sendo os dois trocados de posição caso estejam fora de ordem;
São executados passos sucessivos, até que não ocorram trocas, estando assim o vetor classificado.
![Page 6: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/6.jpg)
04/11/23 EDA - Prof. Paulemir Campos 6
Classificação por Troca Método Bubble-Sort (Algoritmo)BubbleSort(inteiro V[N], N){ /* FALSE -> 0 e TRUE -> 1 */
inteiro ordenado, j, temp ordenado = FALSEenquanto NÃO(ordenado) {
ordenado = TRUEpara j = 1 até (N-1) incremento 1 {
se V[j] > V[j+1] {temp = V[j]V[j] = V[j+1]V[j+1] = temp ordenado = FALSE}
}}
}
![Page 7: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/7.jpg)
04/11/23 EDA - Prof. Paulemir Campos 7
Classificação por Troca
Método Bubble-Sort (Exemplo) Seja o conjunto X={14,21,30,7,56,28,24,33,47,50,32}.
Ordená-lo segundo o método Bubble-Sort.
Etapa 14 21 30 7 56 28 24 33 47 50 32
1 14 21 7 30 28 24 33 47 50 32 56
2 14 7 21 28 24 30 33 47 32 50 56
3 7 14 21 24 28 30 33 32 47 50 56
4 7 14 21 24 28 30 32 33 47 50 56
5 7 14 21 24 28 30 32 33 47 50 56
![Page 8: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/8.jpg)
04/11/23 EDA - Prof. Paulemir Campos 8
Classificação por Troca
Método Bubble-Sort (Observações) O seu princípio básico de
funcionamento é conduzir os maiores elementos para o fim do vetor;
É um algoritmo de ordenação bastante simples;
Complexidade de Tempo: O(n2).
![Page 9: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/9.jpg)
04/11/23 EDA - Prof. Paulemir Campos 9
Classificação por Troca Método Quick-Sort
Sejam X um conjunto com n elementos e p um elemento qualquer de X, denominado pivot. O método consiste em:
1) particionar x em dois subconjuntos X1 e X2 de modo que:
• todo elemento de X1 seja menor ou igual a p
• todo elemento de X2 seja maior que p
Obs. p particiona o conjunto x de tal modo que todos os elementos de x1 são menores que qualquer elemento de x2Exemplo. x={14,21,30,7,56,28,24,33,47,50,32}
para p = 30 x1={14, 21, 7, 28, 24, 30} e x2={56, 33, 47, 50, 32}
para p = 21 x1={14, 7, 21} e x2={30, 28, 24,56, 33, 47, 50, 32}
![Page 10: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/10.jpg)
04/11/23 EDA - Prof. Paulemir Campos 10
Classificação por Troca
Método Quick-Sort2) classificar x1 e x23) realizar a união de x1 e x2, nessa ordem
Obs.: O passo 2 sugere que este método pode ser definido de modo recursivo. Na prática, os subconjuntos x1 e x2 podem permanecer fisicamente dentro de x. Assim, após a classificação recursiva desses, o conjunto x estará classificado. Neste caso a união dos subconjuntos não é necessária.
![Page 11: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/11.jpg)
04/11/23 EDA - Prof. Paulemir Campos 11
Classificação por Troca
Método Quick-Sort (Algoritmo)
QuickSort(inteiro x[N], min, max)início
/* particionar o conjunto x da posição min até max sendo que *//* o pivot ficará na posição j, min j max */se (min max) então
j = Particionar(x[N], min, max);QuickSort(x[N], min, j-1);QuickSort(x[N], j+1, max);
fim-sefim
![Page 12: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/12.jpg)
04/11/23 EDA - Prof. Paulemir Campos 12
Classificação por Troca Método Quick-Sort (Função
Particionar)inteiro Particionar(inteiro x[N], min, max)início inteiro pivot, down, up, temp;
pivot = x[min]; down = min; up = max; enquanto (down < up) faça
enquanto ((x[down] <= pivot) E (down<up)) façadown += 1; // sobe no vetor
fim-enquantoenquanto (x[up] > pivot) faça
up -=1; // desce no vetorfim-enquanto
![Page 13: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/13.jpg)
04/11/23 EDA - Prof. Paulemir Campos 13
Classificação por Troca Método Quick-Sort (Função Particionar)
se (down < up) então // troca elementos do vetor x[N] temp = x[down];
x[down] = x[up];x[up] = temp;
fim-sefim-enquantox[min]=x[up];x[up]=pivot;j = up; retorne j;
fim
![Page 14: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/14.jpg)
04/11/23 EDA - Prof. Paulemir Campos 14
Classificação por Troca
Método Quick-Sort (Exemplo)Seja x={14,21,30,7,56,28,24,33,47,50,32}. Classificá-lo usando o método Quick-Sort.
Pivot 14 21 30 7 56 28 24 33 47 50 32
30 14 21 7 28 24 30 56 33 47 50 32
21 e 47 14 7 21 28 24 30 33 32 47 56 50
7, 24, 32 e 50 7 14 21 24 28 30 32 33 47 50 56
14, 28 e 33 7 14 21 24 28 30 32 33 47 50 56
![Page 15: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/15.jpg)
04/11/23 EDA - Prof. Paulemir Campos 15
Classificação por Troca
Método Quick-Sort (Observações) É o mais rápido e simples algoritmo
de ordenação; Usa o princípio de divide-e-conquista; Complexidades de Tempo
Caso Médio: O(n . log n); Pior Caso (muito raro): O(n2).
![Page 16: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/16.jpg)
04/11/23 EDA - Prof. Paulemir Campos 16
Classificação por Seleção
Método Heap-Sort Utiliza a seleção em árvore binária para
a obtenção dos elementos do vetor C na ordem desejada.
Possui duas fases distintas: Construção da árvore binária heap com os
elementos do vetor C; Usa-se este heap construído para a seleção
dos elementos na ordem desejada.
![Page 17: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/17.jpg)
04/11/23 EDA - Prof. Paulemir Campos 17
Classificação por Seleção
Método Heap-SortÁrvore Binária heap é um tipo de árvore binária em que todos os descendentes de cada nó são menores que seus nós ascendentes.
![Page 18: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/18.jpg)
04/11/23 EDA - Prof. Paulemir Campos 18
Classificação por Seleção Método Heap-Sort
Exemplo de uma Árvore Binária Heap
25
23
1219
17
15 8
1
2
4 5 6
3
7
![Page 19: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/19.jpg)
04/11/23 EDA - Prof. Paulemir Campos 19
Classificação por Seleção Método Heap-Sort (Exemplo)
Dado o V={15,17,12,25,8,19,23} obter usando uma árvore binária tipo heap esses elementos em ordem crescente.
1. Obter a árvore binária heap equivalente ao vetor V.
15
12
2319
17
25 8
1
2
4 5 6
3
7
15
23
1219
25
17 8
1
2
4 5 6
3
7
![Page 20: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/20.jpg)
04/11/23 EDA - Prof. Paulemir Campos 20
Classificação por Seleção Método Heap-Sort (Exemplo)
Dado o V={15,17,12,25,8,19,23} obter usando uma árvore binária tipo heap esses elementos em ordem crescente.
1. Obter a árvore binária heap equivalente ao vetor V. (Continuação)
25
23
1219
15
17 8
1
2
4 5 6
3
7
25
23
1219
17
15 8
1
2
4 5 6
3
7
![Page 21: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/21.jpg)
04/11/23 EDA - Prof. Paulemir Campos 21
Classificação por Seleção Método Heap-Sort (Exemplo)
Dado o V={15,17,12,25,8,19,23} obter usando uma árvore binária tipo heap esses elementos em ordem crescente.
2. Ordenar em ordem crescente o vetor V usando a árvore binária heap obtida no passo 1
25
23
1219
17
15 8
1
2
4 5 6
3
7
23
19
2512
17
15 8
1
2
4 5 6
3
7
![Page 22: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/22.jpg)
04/11/23 EDA - Prof. Paulemir Campos 22
Classificação por Seleção Método Heap-Sort (Exemplo)
Dado o V={15,17,12,25,8,19,23} obter usando uma árvore binária tipo heap esses elementos em ordem crescente.
2. Ordenar em ordem crescente o vetor V usando a árvore binária heap obtida no passo 1 (continuação do passo 2)
19
12
2523
17
15 8
1
2
4 5 6
3
7
17
12
2523
15
8 19
1
2
4 5 6
3
7
![Page 23: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/23.jpg)
04/11/23 EDA - Prof. Paulemir Campos 23
Classificação por Seleção Método Heap-Sort (Exemplo)
Dado o V={15,17,12,25,8,19,23} obter usando uma árvore binária tipo heap esses elementos em ordem crescente.
2. Ordenar em ordem crescente o vetor V usando a árvore binária heap obtida no passo 1 (continuação do passo 2)
15
12
2523
8
17 19
1
2
4 5 6
3
7
12
15
2523
8
17 19
1
2
4 5 6
3
7
![Page 24: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/24.jpg)
04/11/23 EDA - Prof. Paulemir Campos 24
Classificação por Seleção Método Heap-Sort (Exemplo)
Dado o V={15,17,12,25,8,19,23} obter usando uma árvore binária tipo heap esses elementos em ordem crescente.
2. Ordenar em ordem crescente o vetor V usando a árvore binária heap obtida no passo 1 (continuação do passo 2)
8
15
2523
12
17 19
1
2
4 5 6
3
7
V = {8, 12, 15, 17, 19, 23, 25}
![Page 25: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/25.jpg)
04/11/23 EDA - Prof. Paulemir Campos 25
Classificação por Seleção
Método Heap-Sort (Observações) É um algoritmo ótimo; Complexidade de Tempo: O(n . log n); Não requer espaço extra de memória; Na prática é um pouco mais lento do
que o Quick-Sort.
![Page 26: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/26.jpg)
04/11/23 EDA - Prof. Paulemir Campos 26
Classificação por Intercalação Método Merge-Sort
O princípio de funcionamento deste algoritmo é o seguinte:
- dividir o vetor original em n sub-partes de tamanho 1;
- intercalar os pares de sub-partes adjacentes, da esquerda para a direita em ordem crescente;
- repetir o passo anterior até obter um único vetor de tamanho n, que evidentemente estará ordenado.
![Page 27: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/27.jpg)
04/11/23 EDA - Prof. Paulemir Campos 27
Classificação por Intercalação
Método Merge-Sort (Exemplo)
![Page 28: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/28.jpg)
04/11/23 EDA - Prof. Paulemir Campos 28
Classificação por Intercalação Método Merge-Sort (Observações)
Usa o princípio de divide-e-conquista;
É um algoritmo ótimo; Complexidades de Tempo: O(n . log
n); Desvantagem
Requer espaço extra de memória do tamanho do vetor original para uso temporário.
Na prática é um pouco mais lento do que o Quick-Sort.
![Page 29: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/29.jpg)
04/11/23 EDA - Prof. Paulemir Campos 29
Classificação de Dados: Aplicações
Os métodos de classificação interna vistos nesta aula podem ser aplicados para se obter uma ordenação de um vetor de chave de uma determinada tabela, desde de que essas chaves sejam números inteiros.
![Page 30: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/30.jpg)
04/11/23 EDA - Prof. Paulemir Campos 30
Veloso, P. et al. Estrutura de Dados. Rio de Janeiro: Editora Campus, 1996.
Referências
![Page 31: 1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir](https://reader034.vdocuments.net/reader034/viewer/2022051211/552fc101497959413d8bd2cf/html5/thumbnails/31.jpg)
04/11/23 EDA - Prof. Paulemir Campos 31
Links Interessantes Bubble-Sort:
http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/networks/sortieren.htm#section3
Quick-Sort: http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/quick/quicken.ht
m
Heap-Sort: http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/heap/heapen.ht
m
Merge-Sort: http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/merge/mergen.h
tm