Classificação Externa: Geração de Partições Classificadas

Documentos relacionados
Classificação Externa: Geração de Partições Classificadas

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Classificação Externa: Intercalação de Partições Classificadas

Classificação Externa: Intercalação de Partições Classificadas

Arquivos Seqüenciais: Intercalação

heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;

Algoritmos de Ordenação. Profº Carlos Alberto T. Batista

Ordenação Externa (Merge Sort)

PESQUISA EM INFORMÁTICA -COMO ESCREVER O TEXTO. Prof. Angelo Augusto Frozza, M.Sc.

ORDENAÇÃO DE ARQUIVOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

ALGORITMOS DE ORDENAÇÃO

PESQUISA EM INFORMÁTICA - COMO ESCREVER UM TEXTO. Prof. Angelo Augusto Frozza, M.Sc.

Métodos de Classificação

Ordenação e Busca em Arquivos

Processamento Cosequencial: Ordenação Interna e Externa. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A.

Limite assintótico para a ordenação, Ordenação em tempo linear

Métodos de Ordenação Parte 4

Ordenação. Prof. Jonas Potros

Dois parâmetros essenciais t T tempo de transferência de um bloco. assume-se igual para operações de leitura e escrita

Métodos de Ordenação

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa

Arquivos Sequenciais. Estruturas de Dados II Vanessa Braganholo

Projeto e Análise de Algoritmos

Memória secundária. Memória secundária

Operações Coseqüenciais. Processamento Coseqüencial. Modelo para implementação de processos coseqüenciais

Introdução a Algoritmos Parte 09

Métodos de Classificação

Algoritmo MergeSort. Estrutura de Dados II Prof Jairo Francisco de Souza

Universidade Federal de Alfenas

Análise empírica de algoritmos de ordenação

ESTRUTURA DE DADOS VETORES E LISTAS LINEARES

Análise e Complexidade de Algoritmos

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório

Ordenação por Intercalação Métodos de Ordenação Parte 4

Processamento da Consulta. Processamento da Consulta

Ordenação Externa. Profa. Graça Nunes

ESTRUTURA DE DADOS ORDENANDO LISTAS

INF111 Programação II Aulas 11, 12, 13 Ordenação

Métodos de Ordenação: Selection, Insertion, Bubble, Merge (Sort)

Algoritmos de Ordenação

Heapsort é um método de ordenação cujo princípio de funcionamento é o mesmo utilizado para a ordenação por seleção.

ESTRUTURA DE DADOS ORDENANDO LISTAS

Classificação por Intercalação

Aula 19: Métodos eficientes de ordenação

Capítulo 11 Sistemas de Arquivos

MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Sistemas Operacionais. Sistema de Arquivos. Edeyson Andrade Gomes.

Índices. SCE-203 Algoritmos e Estruturas de Dados II

ESTRUTURA DE DADOS LISTAS LINEARES

void subdivide (LISTA_ENC *pl, LISTA_ENC *pl1, LISTA_ENC *pl2) { int cont, k=1; for (cont=tam(*pl)/2;cont;cont--) {

Arquivos Seqüenciais Atualização em Lote

BCC202 - Estrutura de Dados I

ALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão

Classificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos

Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

BCC202 - Estrutura de Dados I

Intercalação de vários arquivos. Estrutura de Dados II Prof Jairo Francisco de Souza

Prof. A. G. Silva. 25 de abril de Prof. A. G. Silva INE5231 Computação Científica I 25 de abril de / 68

Processamento de Produtos ( X )

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Bases de Dados. Algoritmos. Custo de operação. Algoritmos de selecção. Algoritmo de ordenação. Algoritmos de junção.

Aula 18 Algoritmos básicos de busca e classificação

Listas (Parte 1) Túlio Toffolo BCC202 Aula 09 Algoritmos e Estruturas de Dados I

Métodos de Ordenação Parte 2

Árvores-B (Parte Ia) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Edital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Processamento Coseqüencial

Lista de Figuras Figura 1 1: Figura 1 2: Figura 1 3: Figura 1 4: Figura 1 5: Figura 1 6: Figura 1 7: Figura 1 8: Figura 1 9: Figura 1 10:

Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia

BCC202 - Estrutura de Dados I

INF70 Gerenciamento de Banco de Dados 2 Ordenação Externa. Ilmério Reis da Silva UFU/FACOM/BCC

Algoritmos de Ordenação. Cota inferior. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Sistemas Operacionais. Interrupção e Exceção

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

O Problema da Ordenação Métodos de Ordenação Parte 1

Métodos de ordenação. Bubble sort:

BUSCA EM ARRAYS. Prof. André Backes. Ato de procurar por um elemento em um conjunto de dados

Árvores Genéricas de Busca

USP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

Aula 32: Encadeamento interior. Modelo de encadeamento interior. Algoritmo de busca por encadeamento interior

Extra- Algoritmos de Ordenação

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

Memória Secundária e Ordenação externa Algoritmos e Estruturas de Dados III

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira

Escrita ( W ) do Resultado

Algoritmos e Estrutura de Dados

Teoria da Computação. Aula 9 Pesquisa em Memória Secundária 5COP096. Aula 9 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Processador: Conceitos Básicos e Componentes

Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1

INE5408 Estruturas de Dados. Gerência de Arquivos

Linguagem C vetores multidimensionais

Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br

Bubble Sort. Tempo total O(n 2 )

Universidade Veiga de Almeida Algoritmos e Linguagem I

ACH2025. Laboratório de Bases de Dados Aula 8. Indexação e Hashing Parte 1. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

Transcrição:

Classificação Externa: Geração de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF)

Importância da Ordenação/Classificação } Vimos até agora várias operações envolvendo arquivos sequenciais } Todas elas exigem que os arquivos estejam ordenados para melhor desempenho (ex.: consulta, atualização) 2

Ordenação em Memória Principal } Vimos também que uma possível forma de ordenar um arquivo é: 1. ler todos os registros 2. armazená-los em memória principal 3. ordenar os registros 4. gravá-los em um arquivo de saída 3

Mas } E quando os registros não cabem na memória? 4

Tipos de Classificação } Classificação interna: utilização exclusiva de memória principal } Todos os registros do arquivo cabem em memória principal } Classificação externa: utilização de memória secundária } Há mais registros a serem classificados do que é possível manter na memória principal em qualquer momento ATENÇÃO: Nessa disciplina usamos o termo classificação como sinônimo de ordenação 5

Conceito de Classificação Externa } Na classificação externa o parâmetro fundamental é o número de operações de entrada e saída } Deve ser o menor possível 6

Discussão } Como poderíamos resolver o problema de ordenar um arquivo muito grande, que não cabe em memória? 7

Ideia básica da Classificação Externa } A Classificação Externa divide os arquivos em pequenas frações que são ordenadas e intercaladas em duas etapas: } Classificação } Intercalação 8

Modelo da Classificação Externa 9

Na aula de hoje: Etapa de Classificação 10

Etapa de Classificação } Partição: sequencia ordenada de n registros. } Registros são lidos de arquivos de entrada (não ordenados) e/ou de partições (ordenadas) } Estes registros são ordenados e gravados em arquivos de saída ou partições ordenadas 11

Geração de Partições Classificadas

Métodos do Estágio de Classificação } Métodos } Classificação interna } Seleção com substituição } Seleção natural } Considera-se que a memória principal tenha capacidade para armazenar M registros do arquivo a classificar 13

Classificação Interna

Classificação Interna } Critério fundamental de eficiência da classificação interna: número de comparações entre chaves de registros } Consiste na leitura de M registros para a memória, classificação desses registros por qualquer processo de classificação interna e gravação desses registros classificados em uma partição } Todas as partições classificadas contêm M registros, exceto, talvez, a última 15

Processos de classificação interna } Troca: bubble sort, shaker sort, quick sort } Seleção: direta, heap sort, } Inserção: simples, shell sort } Outros: merge sort, etc. 16

Visão geral da Geração de partições Classificadas M Entrada Memória Partição de Saída M 17

Exemplo } Chaves do arquivo a ordenar } (Sequência de leitura: 29, 14, 76, ) } Assumir que na memória cabem 6 registros simultaneamente 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 18

Exemplo 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 19

Exemplo Memória Principal 29 14 76 75 59 6 Leitura 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 20

Exemplo Memória Principal 29 14 76 75 59 6 Ordenação 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 21

Exemplo Memória Principal 6 14 29 69 75 76 Ordenação 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 22

Exemplo Memória Principal 6 14 29 69 75 76 Partição 1 (em disco) ordenada 6 14 29 69 75 76 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 23

Exemplo Partição 1 (em disco) ordenada 6 14 29 69 75 76 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 24

Área de trabalho Partições obtidas Memória 29 14 76 75 59 6 6 14 29 59 75 76 Memória 7 74 48 46 10 18 7 10 18 46 48 74 Memória 56 20 26 4 21 65 4 20 21 26 56 65 Memória 22 49 11 16 8 15 8 11 15 16 22 49 Memória 5 19 50 55 25 66 5 19 25 50 55 66 Memória 57 77 12 30 17 9 9 12 17 30 57 77 Memória 54 78 43 38 51 32 32 38 43 51 54 78 Memória 58 13 73 79 27 1 1 13 27 58 73 79 Memória 3 60 36 47 31 3 31 36 47 60

Seleção com Substituição

Seleção com substituição } Aproveita a possível classificação parcial do arquivo de entrada 27

Seleção com substituição: Algoritmo 1. Ler M registros do arquivo para a memória 2. Selecionar, no array em memória, o registro r com menor chave 3. Gravar o registro r na partição de saída 4. Substituir, no array em memória, o registro r pelo próximo registro do arquivo de entrada 5. Caso a chave deste último seja menor do que a chave recém gravada, considerá-lo congelado e ignorá-lo no restante do processamento 6. Caso existam em memória registros não congelados, voltar ao passo 2 7. Caso contrário: - fechar a partição de saída - descongelar os registros congelados - abrir nova partição de saída - voltar ao passo 2 28

Exemplo } Chaves do arquivo a ordenar } (Sequência de leitura: 29, 14, 76, ) } Assumir que na memória cabem 6 registros simultaneamente 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 80 29

Área de trabalho Partições obtidas Registros 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 a substituição 20 2 a substituição 10 18 74 1 a substituição 46 48 4 26 56 7 Memória 29 14 76 75 59 6 6 7 14 29 46 48 59 74 75 76 A 1 a partição ficou com 10 registros 2 a substituição 19 16 11 15 1 a substituição 65 22 21 8 5 49 Memória 10 18 4 26 56 20 4 10 18 20 21 22 26 49 56 65 A 2 a partição ficou com 10 registros 3 a substituição 43 2 a substituição 78 9 12 17 30 54 1 a substituição 77 57 25 55 50 66 Memória 19 16 11 8 5 15 5 8 11 15 16 19 25 50 55 57 66 77 78 A 3 a partição ficou com 13 registros 3 a substituição 60 2 a substituição 36 73 27 13 3 1 a substituição 79 38 51 32 58 1 Memória 43 9 12 17 30 54 9 12 17 30 32 38 43 51 54 58 73 79 A 4 a partição ficou com 12 registros 1 a substituição 80 31 47 Memória 36 60 27 13 3 1 1 3 13 27 31 36 47 60 80 A 5 a partição ficou com 9 registros Registros congelados Legenda Divisão de regiões na tabela

Tamanho das partições geradas } Em média, o tamanho das partições obtidas pelo processo de seleção com substituição é de 2 * M 31

Seleção Natural

Seleção Natural } Desvantagem da seleção com substituição: no final da partição grande parte do espaço em memória principal está ocupado com registros congelados } Na seleção natural, reserva-se um espaço de memória secundária (o reservatório) para abrigar os registros congelados num processo de substituição } A formação de uma partição se encerra quando o reservatório estiver cheio ou quando terminarem os registros de entrada } Para a memória comportando M registros supõe-se um reservatório comportando n registros } Para M = n o comprimento médio das partições é de M * e, onde e = 2,718.... 33

Seleção Natural: Algoritmo 1. Ler M registros do arquivo para a memória 2. Selecionar, no array em memória, o registro r com menor chave 3. Gravar o registro r na partição de saída 4. Substituir, no array em memória, o registro r pelo próximo registro do arquivo de entrada 5. Caso a chave deste último seja menor do que a chave recém gravada, gravá-lo no reservatório e substituir, no array em memória, o registro r pelo próximo registro do arquivo de entrada 6. Caso ainda exista espaço livre no reservatório, voltar ao passo 2 7. Caso contrário: - fechar a partição de saída - copiar os registros do reservatório para o array em memória - esvaziar o reservatório - abrir nova partição de saída - voltar ao passo 2 34

Exemplo } Chaves do arquivo a ordenar } (Sequência de leitura: 29, 14, 76, ) } Assumir que na memória cabem 6 registros simultaneamente (M = 6), e que o tamanho do reservatório também é 6 (n = 6) 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 80 35

Área de trabalho Partições obtidas Registros 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 a substituição 56 74 1 a substituição 46 48 7 Memória 29 14 76 75 59 6 6 7 14 29 46 48 56 59 74 75 76 Reservatório 10 18 20 26 4 21 A 1 a partição ficou com 11 registros 1 a substituição 22 49 65 Memória 10 18 20 26 4 21 4 10 18 20 21 22 26 49 65 Reservatório 11 16 8 15 5 19 A 2 a partição ficou com 9 registros 3 a substituição 54 2 a substituição 30 78 1 a substituição 25 57 55 66 50 77 Memória 11 16 8 15 5 19 5 8 11 15 16 19 25 30 50 54 55 57 66 77 78 Reservatório 12 17 9 43 38 51 A 3 a partição ficou com 15 registros 2 a substituição 79 1 a substituição 58 73 32 47 60 Memória 12 17 9 43 38 51 9 12 17 32 38 43 47 51 58 60 73 79 Reservatório 13 27 1 3 36 31 A 4 a partição ficou com 12 registros 1 a substituição 80 Memória 36 13 27 1 3 36 31 1 3 13 27 31 36 80 Reservatório A 5 a partição ficou com 7 registros

Comparação dos Processos } A classificação interna gera as menores partições, o que implica em mais arquivos a intercalar } Os processos de seleção geram partições maiores, reduzindo o tempo total de processamento } A seleção natural sofre o ônus adicional de utilizar mais operações de entrada e saída (devido ao reservatório estar em memória secundária) 37

Exercício 1 } Gerar partições classificadas segundo o método de Seleção com Substituição para a seguinte situação } Assumir que na memória cabem 7 registros simultaneamente } Arquivo a ordenar 30 14 15 75 32 6 5 81 48 41 87 18 56 20 26 4 21 65 22 49 11 16 8 12 38

Exercício 2 } Repetir o exercício anterior, agora utilizando o método de Seleção Natural } Assumir que na memória cabem 7 registros simultaneamente. Tamanho do reservatório = 7. } Arquivo a ordenar 30 14 15 75 32 6 5 81 48 41 87 18 56 20 26 4 21 65 22 49 11 16 8 12 39

Exercício 3 } Implementar um dos 2 métodos de geração de partições vistos na aula de hoje (Seleção com Substituição ou Seleção Natural) 40