A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir.

Apresentações semelhantes


Apresentação em tema: "1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir."— Transcrição da apresentação:

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 G. Campos

2 1/18/2014EDA - Prof. Paulemir Campos2 Conteúdo Classificação de Dados: Bubble-sort Quick-sort Heap-sort Merge-sort Aplicações

3 1/18/2014EDA - Prof. Paulemir Campos3 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.

4 1/18/2014EDA - Prof. Paulemir Campos4 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

5 1/18/2014EDA - Prof. Paulemir Campos5 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.

6 1/18/2014EDA - Prof. Paulemir Campos6 Classificação por Troca Método Bubble-Sort (Algoritmo) BubbleSort(inteiro V[N], N){ /* FALSE -> 0 e TRUE -> 1 */ inteiro ordenado, j, temp ordenado = FALSE enquanto NÃO(ordenado) { ordenado = TRUE para 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} }

7 1/18/2014EDA - Prof. Paulemir Campos7 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. Etapa142130756282433475032 1142173028243347503256 2147212824303347325056 3714212428303332475056 4714212428303233475056 5714212428303233475056

8 1/18/2014EDA - Prof. Paulemir Campos8 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(n 2 ).

9 1/18/2014EDA - Prof. Paulemir Campos9 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 X 1 e X 2 de modo que: todo elemento de X 1 seja menor ou igual a p todo elemento de X 2 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 x2 Exemplo. 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 = 21x1={14, 7, 21} e x2={30, 28, 24,56, 33, 47, 50, 32}

10 1/18/2014EDA - Prof. Paulemir Campos10 Classificação por Troca Método Quick-Sort 2) classificar x1 e x2 3) 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.

11 1/18/2014EDA - Prof. Paulemir Campos11 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-se fim

12 1/18/2014EDA - Prof. Paulemir Campos12 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 pivot) faça up -=1; // desce no vetor fim-enquanto

13 1/18/2014EDA - Prof. Paulemir Campos13 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-se fim-enquanto x[min]=x[up]; x[up]=pivot; j = up; retorne j; fim

14 1/18/2014EDA - Prof. Paulemir Campos14 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. Pivot142130756282433475032 30142172824305633475032 21 e 47147212824303332475650 7, 24, 32 e 50714212428303233475056 14, 28 e 33714212428303233475056

15 1/18/2014EDA - Prof. Paulemir Campos15 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(n 2 ).

16 1/18/2014EDA - Prof. Paulemir Campos16 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.

17 1/18/2014EDA - Prof. Paulemir Campos17 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.

18 1/18/2014EDA - Prof. Paulemir Campos18 Classificação por Seleção Método Heap-Sort Exemplo de uma Árvore Binária Heap 25 23 1219 17 158 1 2 4 56 3 7

19 1/18/2014EDA - Prof. Paulemir Campos19 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 258 1 2 4 56 3 7 15 23 1219 25 178 1 2 4 56 3 7

20 1/18/2014EDA - Prof. Paulemir Campos20 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 178 1 2 4 56 3 7 25 23 1219 17 158 1 2 4 56 3 7

21 1/18/2014EDA - Prof. Paulemir Campos21 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 158 1 2 4 56 3 7 23 19 2512 17 158 1 2 4 56 3 7

22 1/18/2014EDA - Prof. Paulemir Campos22 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 158 1 2 4 56 3 7 17 12 2523 15 819 1 2 4 56 3 7

23 1/18/2014EDA - Prof. Paulemir Campos23 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 1719 1 2 4 56 3 7 12 15 2523 8 1719 1 2 4 56 3 7

24 1/18/2014EDA - Prof. Paulemir Campos24 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 1719 1 2 4 56 3 7 V = {8, 12, 15, 17, 19, 23, 25}

25 1/18/2014EDA - Prof. Paulemir Campos25 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.

26 1/18/2014EDA - Prof. Paulemir Campos26 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.

27 1/18/2014EDA - Prof. Paulemir Campos27 Classificação por Intercalação Método Merge-Sort (Exemplo)

28 1/18/2014EDA - Prof. Paulemir Campos28 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.

29 1/18/2014EDA - Prof. Paulemir Campos29 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.

30 1/18/2014EDA - Prof. Paulemir Campos30 Veloso, P. et al. Estrutura de Dados. Rio de Janeiro: Editora Campus, 1996. Referências

31 1/18/2014EDA - Prof. Paulemir Campos31 Links Interessantes Bubble-Sort: http://www.iti.fh- flensburg.de/lang/algorithmen/sortieren/networks/sortieren.htm#section3 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.htm Heap-Sort: http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/heap/heapen.htm Merge-Sort: http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/merge/mergen.htm


Carregar ppt "1/18/2014EDA - Prof. Paulemir Campos1 Classificação de Dados UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof.: Paulemir."

Apresentações semelhantes


Anúncios Google