UNIVERSIDADE LUTERANA DO BRASIL   COMUNIDADE EVANGÉLICA LUTERANA “SÃO PAULO”Reconhecida pela Portaria Ministerial nº 681 d...
Sumários   Introduçãos   1 Origems   2 Base    – 2.1 Princípio da Limitação de Dígitos    – 2.2 Princípio do Valor pela Po...
Introduçãos   Existem diversos algoritmos utilizados para a    ordenação de dadoss   Cada um apresenta características    ...
1 Origems   Também conhecido como Radixsort,    Algoritmo das Raízes e Indexação Diretas   Criado para máquinas de ordenaç...
2 Bases   Diferente dos outros métodos de ordenação    que usam comparação e trocas   Se baseia em duas características do...
2.1 Princípio da Limitação de Dígitoss   O número de dígitos (caracteres) usados    numa base numérica é limitados   A qua...
2.1 Princípio da Limitação de Dígitoss   O algoritmo já “conhece” a ordem correta dos    dígitos da base numérica (decimal...
2.2 Princípio do Valor pela Posiçãos   O valor de cada dígito muda de acordo com a    posição em que ocupa no números   Ex...
2.3 Aplicando os Dois Princípioss   Inicia-se ordenando os dados pelo dígito da    posição 1 (menos significativo)s   Para...
3 Algoritmos   Um exemplo de algoritmo em português    estruturado e a sua aplicação sobre um vetor    exemplos   3.1 Códi...
3.1 CódigoSubrotinaOrdenar Vetor pelo Dígito da Posição X:Início  Criar um vetor chamado Fila, da posição  0 até a 9, de f...
3.1 Código  A Posição Atual do Vetor é o início;  Para Y = 0 até 9 {     Colocar cada elemento da Fila[Y] no     Vetor a p...
3.2 Aplicaçãos   Vetor exemplo a ser ordenado:            Posição    Dado (Chave)           1          15           2     ...
3.2 Aplicaçãos   Passo 1:Programa Principal:Início  Para cada posição começando pela 1 até  a máxima que as chaves podem t...
3.2 Aplicaçãos   Passo 2:SubrotinaOrdenar Vetor pelo Dígito da Posição X:Início  Criar um vetor chamado Fila, da posição  ...
3.2 Aplicaçãos   O Vetor de filas “Fila” criado:            Fila       Elementos            0            1            2   ...
3.2 Aplicaçãos   Passo 3:    Para cada elemento do Vetor {       F = Obter o dígito desse elemento na       Posição X;    ...
3.2 Aplicaçãos   Ao fim do laço:           Fila        Elementos           0      30, 10           1      21, 11, 1       ...
3.2 Aplicaçãos   Passo 4:  Para Y = 0 até 9 {     Colocar cada elemento da Fila[Y] no     Vetor a partir da Posição Atual;...
3.2 Aplicaçãos   Vetor ordenado pelas unidades:            Posição    Dado (Chave)           1          30           2    ...
3.2 Aplicaçãos   Passo 5:    – Com o fim da subrotina de ordenação por dígito,      volta-se ao programa principal e é enc...
3.2 Aplicaçãos   Vetor ordenado pelas unidades e dezenas:           Fila         Elementos           0      1, 2, 6, 8, 9 ...
3.2 Aplicaçãos   Passo 6:    – É repetido o processo do passo 4, que forma o      vetor novamente a partir das filas    – ...
3.2 Aplicaçãos   Vetor ordenado ao fim do programa:            Posição    Dado (Chave)           1          1           2 ...
4 Vantagens e Desvantagenss   Utiliza pouco processamento (comparações)    em relação aos outros algoritmoss   Rápido para...
Conclusãos   Deve ser utilizado em situações específicas,    como por exemplo:    – Quando se sabe o antecipadamente o tam...
Upcoming SlideShare
Loading in …5
×

Ordenação de Dados por Distribuição de Chaves

566 views
475 views

Published on

Baixe mais arquivos em http://pastadomau.wikidot.com.
Trabalho que apresenta o algoritmo de ordenação de dados por distribuição de chaves.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
566
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ordenação de Dados por Distribuição de Chaves

  1. 1. UNIVERSIDADE LUTERANA DO BRASIL COMUNIDADE EVANGÉLICA LUTERANA “SÃO PAULO”Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89 Campus Torres Ordenação de Dados por Distribuição de Chaves Estrutura de Dados II Igor Casa Nova dos Santos Uílson Zanetti Gomes Mauricio Volkweis Astiazara Henrique Oliveira Professor Leonardo Pereira Torres, Abril de 2002
  2. 2. Sumários Introduçãos 1 Origems 2 Base – 2.1 Princípio da Limitação de Dígitos – 2.2 Princípio do Valor pela Posição – 2.3 Aplicando os Dois Princípioss 3 Algoritmo – 3.1 Código – 3.2 Aplicaçãos 4 Vantagens e Desvantagenss Conclusão 2
  3. 3. Introduçãos Existem diversos algoritmos utilizados para a ordenação de dadoss Cada um apresenta características específicas, com vantagens e desvantagenss Veremos um destes algoritmos: ordenação de dados por distribuição de chaves 3
  4. 4. 1 Origems Também conhecido como Radixsort, Algoritmo das Raízes e Indexação Diretas Criado para máquinas de ordenação de cartões perfuradoss Resistiu ao tempo e foi utilizado em computadores digitais 4
  5. 5. 2 Bases Diferente dos outros métodos de ordenação que usam comparação e trocas Se baseia em duas características do sistema numérico arábico: – Princípio da Limitação de Dígitos – Princípio do Valor pela Posição 5
  6. 6. 2.1 Princípio da Limitação de Dígitoss O número de dígitos (caracteres) usados numa base numérica é limitados A quantidade de números que podem representar quando combinados é infinita Base Numérica Dígitos (Caracteres)Decimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9Binária 0, 1Hexadecimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 6
  7. 7. 2.1 Princípio da Limitação de Dígitoss O algoritmo já “conhece” a ordem correta dos dígitos da base numérica (decimal)s Logo, pode ordenar um vetor com dados de no máximo um dígito 7
  8. 8. 2.2 Princípio do Valor pela Posiçãos O valor de cada dígito muda de acordo com a posição em que ocupa no números Exemplos: Base Valor do Dígito na Posição N 3 2 1 (N – 1) 2 1B Dígito * B Dígito * B Dígito * B Dígito * 1 (N – 1)Decimal Dígito * 10 Dígito * 100 Dígito * 10 Dígito * 1 (N – 1)Binária Dígito * 2 Dígito * 4 Dígito * 2 Dígito * 1 (N – 1)Hexadecimal Dígito * 16 Dígito * 256 Dígito * 16 Dígito * 1s Logo, qualquer dígito à direita representa mais que qualquer dígito à esquerda 8
  9. 9. 2.3 Aplicando os Dois Princípioss Inicia-se ordenando os dados pelo dígito da posição 1 (menos significativo)s Para essa ordenação é usado um algoritmo baseado no Princípio da Limitação de Dígitoss Passa-se então para a ordenação pelo dígito da posição 2, depois 3 e assim por diante, até o número máximo de dígitos que os dados podem ter 9
  10. 10. 3 Algoritmos Um exemplo de algoritmo em português estruturado e a sua aplicação sobre um vetor exemplos 3.1 CódigoPrograma Principal:Início Para cada posição começando pela 1 até a máxima que as chaves podem ter { Ordenar o vetor pelo dígito dessa posição; } 10Fim.
  11. 11. 3.1 CódigoSubrotinaOrdenar Vetor pelo Dígito da Posição X:Início Criar um vetor chamado Fila, da posição 0 até a 9, de filas; Para cada elemento do Vetor { F = Obter o dígito desse elemento na Posição X; Colocar esse elemento na Fila F; } 11
  12. 12. 3.1 Código A Posição Atual do Vetor é o início; Para Y = 0 até 9 { Colocar cada elemento da Fila[Y] no Vetor a partir da Posição Atual; A Posição Atual do Vetor é o seu próprio valor somado ao tamanho da Fila[Y]; }Fim; 12
  13. 13. 3.2 Aplicaçãos Vetor exemplo a ser ordenado: Posição Dado (Chave) 1 15 2 2 3 21 4 11 5 8 6 1 7 30 8 9 9 10 10 6 13
  14. 14. 3.2 Aplicaçãos Passo 1:Programa Principal:Início Para cada posição começando pela 1 até a máxima que as chaves podem ter { Ordenar o vetor pelo dígito dessa posição; } 14
  15. 15. 3.2 Aplicaçãos Passo 2:SubrotinaOrdenar Vetor pelo Dígito da Posição X:Início Criar um vetor chamado Fila, da posição 0 até a 9, de filas; 15
  16. 16. 3.2 Aplicaçãos O Vetor de filas “Fila” criado: Fila Elementos 0 1 2 3 4 5 6 7 8 9 16
  17. 17. 3.2 Aplicaçãos Passo 3: Para cada elemento do Vetor { F = Obter o dígito desse elemento na Posição X; Colocar esse elemento na Fila F; } 17
  18. 18. 3.2 Aplicaçãos Ao fim do laço: Fila Elementos 0 30, 10 1 21, 11, 1 2 2 3 4 5 15 6 6 7 8 8 9 9 18
  19. 19. 3.2 Aplicaçãos Passo 4: Para Y = 0 até 9 { Colocar cada elemento da Fila[Y] no Vetor a partir da Posição Atual; A Posição Atual do Vetor é o seu próprio valor somado ao tamanho da Fila[Y]; }Fim; 19
  20. 20. 3.2 Aplicaçãos Vetor ordenado pelas unidades: Posição Dado (Chave) 1 30 2 10 3 21 4 11 5 1 6 2 7 15 8 6 9 8 10 9 20
  21. 21. 3.2 Aplicaçãos Passo 5: – Com o fim da subrotina de ordenação por dígito, volta-se ao programa principal e é encerrada a primeira volta do laço descrito no Passo 1 – Segue-se o que foi descrito nos Passos 2 e 3, mas com o parâmetro da rotina de ordenação por dígito 2 21
  22. 22. 3.2 Aplicaçãos Vetor ordenado pelas unidades e dezenas: Fila Elementos 0 1, 2, 6, 8, 9 1 10, 11, 15 2 21 3 30 4 5 6 7 8 9 22
  23. 23. 3.2 Aplicaçãos Passo 6: – É repetido o processo do passo 4, que forma o vetor novamente a partir das filas – É o fim da subrotina e volta-se ao programa principal – Como foi atingido o número máximo de dígitos (2) é o fim do laço e do programa 23
  24. 24. 3.2 Aplicaçãos Vetor ordenado ao fim do programa: Posição Dado (Chave) 1 1 2 2 3 6 4 8 5 9 6 10 7 11 8 15 9 21 10 30 24
  25. 25. 4 Vantagens e Desvantagenss Utiliza pouco processamento (comparações) em relação aos outros algoritmoss Rápido para dados com poucos dígitoss É necessário saber de antemão o número máximo de dígitos dos dadoss Os passos intermediários, como a separação do dado em dígitos, podem usar mais processamento que a própria ordenação. 25
  26. 26. Conclusãos Deve ser utilizado em situações específicas, como por exemplo: – Quando se sabe o antecipadamente o tamanho máximo dos dados – Quando o número de dígitos dos dados não é muito grandes Se usado em situações genéricas a eficiência pode não corresponder ao desejado 26

×