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.

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Auditoria de Processo Marcelo Waihrich Souza
Par Trançado e Cabo Coaxial
Programação em Java Prof. Maurício Braga
Geometria Computacional Fecho Convexo II
Programação em Java Prof. Maurício Braga
A = ( 3 ) , logo | A | = 3 Determinantes
Transmissão de pacotes
Amintas engenharia.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Linguagens Formais e Autômatos
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes
TADS – Tipos Abstratos de Dados
Para Casa – Montar o cariograma
1 Camada de redes: Interoperabilidade com IP. 2 Enlaces entre duas máquinas.
Série de Exercícios.
Análise de Requisitos Use Case Renata Araujo Ricardo Storino
Algoritmos Distribuídos Professora: Lúcia Drummond
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
DIAGRAMA DE ATIVIDADES
DIAGRAMA DE CASOS DE USO PERSPECTIVA CONCEITUAL
Estatística Básica Utilizando o Excel
Introdução Estendendo LANs.
David Menotti Estruturas de Dados I DECOM – UFOP
BCC101 – Matemática Discreta
Classificação e Pesquisa de Dados
1 Sabendo-se que os pratos das balanças estão em equilíbrio, você seria capaz de dizer: Quantos quadrados corresponde um círculo ? Dica Mais dicas Elaboração:
Polinômios Prof. Marlon.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Auditoria de Segurança da Informação
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Programação Baseada em Objectos Desenho de TAD
Listas Encadeadas.
Provas de Concursos Anteriores
PROGRESSÕES JUDITE GOMES
Campus de Caraguatatuba
Insertion Sort.
Expressão algébrica a partir da representação gráfica da função
Liane Tarouco CINTED/UFRGS
Impressão de etiquetas
Compressão de Textos Juliano Palmieri Lage.
Algoritmos e Estruturas de Dados II
Algoritmos e Estruturas de Dados II
Conteúdos do tutorial O que é um Slide Mestre?
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Conversão de um NFA para um DFA com um exemplo
Salas de Matemática.
Estrutura de dados, pseudocódigo
Algoritmos paralelos eficientes para alguns problemas de processamento de Cadeia de Caracteres Alunos: Diego Alencar dos Santos Melo Felipe Formagini Brant.
Arquitetura de computadores
Introdução teórica A modulação em freqüência consiste na variação da freqüência da portadora proporcionalmente ao sinal de informação. Dado o sinal modulador.
Aula 08 Medidas de posição - Prof. Diovani Milhorim
É u m e l e m e n t o f u n d a m e n t a l
Cinemática de uma Partícula Cap. 12
Introdução e Busca Cega
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
Ceça Moraes – Introdução à Programação SI1
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Campus de Caraguatatuba Aula 2: Somatório e Produtório
Rio Verde - Goiás - Brasil
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
BCC 101 – Matemática Discreta I
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Contagem Sequencial do Estoque
Transcrição da apresentação:

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 Sumário n Introdução n 1 Origem n 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ípios n 3 Algoritmo –3.1 Código –3.2 Aplicação n 4 Vantagens e Desvantagens n Conclusão

3 Introdução n Existem diversos algoritmos utilizados para a ordenação de dados n Cada um apresenta características específicas, com vantagens e desvantagens n Veremos um destes algoritmos: ordenação de dados por distribuição de chaves

4 1 Origem n Também conhecido como Radixsort, Algoritmo das Raízes e Indexação Direta n Criado para máquinas de ordenação de cartões perfurados n Resistiu ao tempo e foi utilizado em computadores digitais

5 2 Base n Diferente dos outros métodos de ordenação que usam comparação e troca n 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

6 2.1 Princípio da Limitação de Dígitos n O número de dígitos (caracteres) usados numa base numérica é limitado n A quantidade de números que podem representar quando combinados é infinita

7 2.1 Princípio da Limitação de Dígitos n O algoritmo já conhece a ordem correta dos dígitos da base numérica (decimal) n Logo, pode ordenar um vetor com dados de no máximo um dígito

8 2.2 Princípio do Valor pela Posição n O valor de cada dígito muda de acordo com a posição em que ocupa no número n Exemplos: n Logo, qualquer dígito à direita representa mais que qualquer dígito à esquerda

9 2.3 Aplicando os Dois Princípios n Inicia-se ordenando os dados pelo dígito da posição 1 (menos significativo) n Para essa ordenação é usado um algoritmo baseado no Princípio da Limitação de Dígitos n 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

10 3 Algoritmo n Um exemplo de algoritmo em português estruturado e a sua aplicação sobre um vetor exemplo n 3.1 Código 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; } Fim.

Código Subrotina Ordenar 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; }

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;

Aplicação n Vetor exemplo a ser ordenado:

Aplicação n 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; }

Aplicação n Passo 2: Subrotina Ordenar Vetor pelo Dígito da Posição X: Início Criar um vetor chamado Fila, da posição 0 até a 9, de filas;

Aplicação n O Vetor de filas Fila criado:

Aplicação n Passo 3: Para cada elemento do Vetor { F = Obter o dígito desse elemento na Posição X; Colocar esse elemento na Fila F; }

Aplicação n Ao fim do laço:

Aplicação n 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;

Aplicação n Vetor ordenado pelas unidades:

Aplicação n 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

Aplicação n Vetor ordenado pelas unidades e dezenas:

Aplicação n 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

Aplicação n Vetor ordenado ao fim do programa:

25 4 Vantagens e Desvantagens n Utiliza pouco processamento (comparações) em relação aos outros algoritmos n Rápido para dados com poucos dígitos n É necessário saber de antemão o número máximo de dígitos dos dados n Os passos intermediários, como a separação do dado em dígitos, podem usar mais processamento que a própria ordenação.

26 Conclusão n 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 grande n Se usado em situações genéricas a eficiência pode não corresponder ao desejado