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. Etapa

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. Pivot e , 24, 32 e , 28 e

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

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

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)

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

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)

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)

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) 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, Referências

31 1/18/2014EDA - Prof. Paulemir Campos31 Links Interessantes Bubble-Sort: flensburg.de/lang/algorithmen/sortieren/networks/sortieren.htm#section3 flensburg.de/lang/algorithmen/sortieren/networks/sortieren.htm#section3 Quick-Sort: Heap-Sort: Merge-Sort:


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