Classificação Externa: Intercalação de Partições Classificadas
|
|
|
- Maria da Assunção Mariana Salgado Damásio
- 7 Há anos
- Visualizações:
Transcrição
1 Classificação Externa: Intercalação de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF)
2 Relembrando: Modelo da Classificação Externa 2
3 Aula Passada: Etapa de Classificação 3
4 Aula de Hoje: Etapa de Intercalação 4
5 Objetivo da Etapa de Intercalação } Transformar um conjunto de partições classificadas por determinado critério, em um único arquivo contendo todos os registros de todas as partições originais do conjunto } O arquivo gerado deve estar classificado pelo mesmo critério de classificação das partições iniciais 5
6 Problema } Considere a existência de R partições geradas pelo processo de geração de partições } Como gerar o arquivo a partir das R partições? 6
7 Algoritmo Básico } De cada um dos arquivos a intercalar basta ter em memória um registro } Considera-se cada arquivo como uma pilha } Topo da pilha: registro em memória } Em cada iteração do algoritmo, o topo da pilha com menor chave é gravado no arquivo de saída e é substituído pelo seu sucessor } Pilhas vazias têm topo igual a high value } O algoritmo termina quando todos os topos da pilha tiverem high value 7
8 Esquema Básico de Intercalação Programa de Intercalação Arquivos por intercalar (cada coluna representa um arquivo) Livro pág. 55
9 Número de iterações } A cada iteração, encontra-se a menor chave (O(n)) } n é o número de arquivos a intercalar } Número de iterações = número total de registros a serem ordenados
10 Mas } E se a quantidade de arquivos a intercalar for muito grande? } Encontrar o menor valor de chave pode ser uma tarefa custosa } Operação de busca da menor chave tem que ser repetida várias e várias vezes, até os arquivos terminarem 10
11 Otimização do Algoritmo } Árvore Binária de Vencedores 11
12 Árvore binária de vencedores } Nós folha representam as chaves que estão nos topos das pilhas dos arquivos a intercalar } Cada nó interno representa o menor de seus dois filhos } A raiz representa o menor nó da árvore 12
13 Árvore binária de vencedores } Cada nó interno tem quatro componentes } Vencedor: valor da menor chave daquela sub-árvore } EndVencedor: ponteiro para o arquivo que tem aquela chave } Left: ponteiro para o filho da esquerda } Rigth: ponteiro para o filho da direita 13
14 Exemplo } Arquivos a serem ordenados } Cada coluna abaixo representa um arquivo com suas respectivas chaves
15 Árvore Binária de Vencedores } Colocar em memória o primeiro registro de cada arquivo } Cada registro é um nó folha da árvore (aqui usamos apenas as chaves para simplificar)
16 Árvore Binária de Vencedores } Criar um nó raiz para cada 2 nós folha, com o menor dos dois valores
17 Árvore Binária de Vencedores } Representação do nó interno 41 } Vencedor: 41 } EndVencedor: 3 } Left: 41 } Rigth:
18 Árvore Binária de Vencedores Atenção: valores de chave se repetem em vários níveis
19 Árvore Binária de Vencedores Raiz tem chave de menor valor
20 Uso da Árvore de Vencedores no algoritmo de Intercalação } Chave da raíz é retirada e registro correspondente é inserido no arquivo 20
21 Árvore Binária de Vencedores HV HV HV HV HV HV 60
22 Árvore Binária de Vencedores Só é necessário comparar 20 com os seus ascendentes HV HV HV HV HV HV 15 60
23 Árvore Binária de Vencedores HV HV HV HV HV HV 15 60
24 Árvore Binária de Vencedores HV HV HV HV HV HV 60 HV
25 Árvore Binária de Vencedores HV HV HV HV HV HV 60 HV
26 Árvore Binária de Vencedores HV HV HV HV HV HV HV
27 Árvore Binária de Vencedores HV HV HV HV HV HV HV
28 Árvore Binária de Vencedores HV HV HV HV 51 HV HV HV
29 Árvore Binária de Vencedores HV HV HV HV HV HV HV
30 Árvore Binária de Vencedores HV HV HV HV HV HV HV 30
31 Árvore Binária de Vencedores HV HV HV HV HV HV HV HV 31
32 Árvore Binária de Vencedores HV 69 HV HV 69 HV HV HV HV HV HV 32
33 Árvore Binária de Vencedores HV HV 69 HV HV HV 69 HV HV 60 HV HV HV HV 33
34 Árvore Binária de Vencedores HV HV HV 69 HV HV HV HV 69 HV HV HV HV HV HV 34
35 Árvore Binária de Vencedores HV 70 HV HV HV HV HV HV HV HV HV HV HV HV HV HV 35
36 Árvore Binária de Vencedores HV 76 HV HV HV 76 HV HV HV HV HV HV 76 HV HV HV HV HV HV 36
37 Árvore Binária de Vencedores HV HV HV HV HV HV HV HV HV HV HV HV HV HV HV HV HV HV HV HV 37
38 Discussão } Montagem da árvore: O(n) } A cada iteração, faz-se log n comparações (n é o número de arquivos a comparar) } Número de iterações: número total de registros a serem ordenados 38
39 Exercício } Montar a árvore de vencedores para a seguinte situação } Simular a execução do algoritmo de intercalação
40 Problema } Seria ideal poder intercalar todas as partições de uma só vez e obter o arquivo classificado, utilizando, por exemplo, a árvore de vencedores, mas: (i) O número de arquivos a intercalar pode gerar uma árvore de vencedores maior do que a capacidade da memória (ii) Sistemas Operacionais estabelecem número máximo de arquivos abertos simultaneamente } Esse número pode ser bem menor do que o número de partições existentes } Curiosidade: ver o número máximo de arquivos que podem ser abertos no linux: } ulimit Hn 40
41 Solução } A intercalação vai exigir uma série de fases durante as quais registros são lidos de um conjunto de arquivos e gravados em outro (partições) 41
42 Etapa de Intercalação 42
43 Estágio de Intercalação Estratégias de distribuição e intercalação: } Intercalação balanceada de N caminhos } Intercalação ótima 43
44 Medida de Eficiência } Uma medida de eficiência do estágio de intercalação é dada pelo número de passos sobre os dados: Número de passos = No. total de registros lidos No. total de registros no arquivo classificado } Número de passos representa o número médio de vezes que um registro é lido (ou gravado) durante o estágio de intercalação 44
45 Intercalação balanceada de N caminhos
46 Intercalação Balanceada de N caminhos } Primeiro passo: determinar o número de arquivos (F) que o algoritmo irá manipular } Metade dos arquivos (F/2) será usada para leitura (entrada) } A outra metade (F/2), para escrita (saída) 46
47 Exemplo } Número de arquivos F = 4 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 47
48 Intercalação Balanceada de N caminhos } Passo 2: Distribuir todas as partições, tão equilibradamente quanto possível, nos F/2 arquivos de entrada } Atenção: aqui fazemos apenas uma fila para ver que variável de arquivo vai processar cada partição 48
49 Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 P1 P2 P3 P10 P11 P12 P13 P20 49
50 Intercalação Balanceada de N caminhos } Início da fase de intercalação: intercalar as primeiras F/2 partições, gravando o resultado em um dos F/2 arquivos de saída 50
51 Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 P1 P11 P2 P12 P3 P13 P10 P20 51
52 Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P21 P2 P12 P3 P13 P10 P20 52
53 Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P reg P22 P3 P13 P10 P20 53
54 Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P reg P reg P23 P10 P20 54
55 Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P reg P reg P reg P24 P10 P20 55
56 Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P reg P reg P reg P reg P30 56
57 Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P reg P reg P23 Resultado da Primeira Fase: 10 partições de 200 registros cada 200 reg P reg P30 57
58 Intercalação Balanceada de N caminhos } No final de cada fase, o conjunto de partições de saída torna-se o conjunto de entrada 58
59 Exemplo: Fase 2 } Número de arquivos F = 4 } Partições a serem intercaladas = 10 (200 registros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P reg P reg P reg P reg P30 59
60 Intercalação Balanceada de N caminhos } A intercalação termina quando, em uma fase, grava-se apenas uma partição 60
61 Número de Fases: 5 } Fase 1: 20 partições com istros cada } Fase 2: 10 partições com 200 registros cada } Fase 3: 5 partições com 400 registros cada } Fase 4: 2 partições com 800 registros cada + 1 partição com 400 registros cada } Fase 5: 1 partição com 1600 registros + 1 partição com 400 registros } Resultado da Fase 5: 1 partição com 2000 registros 61
62 Número de Fases: 5 } Fase 1: 20 partições com istros cada } Fase 2: 10 partições com 200 registros cada } Fase 3: 5 partições com 400 registros cada } Fase 4: 2 partições com 800 registros cada + 1 partição com 400 registros cada } Fase 5: 1 partição com 1600 registros + 1 partição com 400 registros Pode ocorrer que partições sejam copiadas de um arquivo para outro sem qualquer processamento 62
63 Número de Passos Número de passos = No. total de registros lidos } Número de registros lidos } Fase 1: 20 partições com istros cada = 2000 } Fase 2: 10 partições com 200 registros cada = 2000 } Fase 3: 5 partições com 400 registros cada = 2000 } Fase 4: 2 partições com 800 registros cada + 1 partição com 400 registros cada = 2000 } Fase 5: 1 partição com 1600 registros + 1 partição com 400 registros = * 5 = registros lidos No. total de registros no arquivo classificado 63
64 Número de Passos Número de passos = No. total de registros no arquivo classificado } Número total de registros no arquivo classificado:
65 Número de Passos Número de passos = = } Portanto: número de passos = número de fases 65
66 Intercalação Balanceada de N caminhos } O balanceamento do processo baseia-se em colocar nos arquivos de entrada aproximadamente o mesmo número de registros 66
67 Intercalação Ótima
68 Intercalação Ótima } F arquivos } F 1 para entrada } 1 para saída 68
69 Exemplo } Número de arquivos F = 4 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 69
70 Intercalação Ótima } Durante cada fase do algoritmo, F-1 partições são intercaladas e gravadas no arquivo de saída 70
71 Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 P1 P2 P3 P4 P5 P6 P7 P19 P8 P20 P9 71
72 Intercalação Ótima } Do conjunto inicial de partições removem-se as partições intercaladas e a ele agrega-se a partição gerada na intercalação } Algoritmo termina quando este conjunto tiver apenas uma partição 72
73 Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 P1 P2 P3 P4 P5 P6 P7 P8 P9 P19 P20 73
74 Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P21 P4 P5 P6 P7 P8 P9 P19 P20 74
75 Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P21 P4 P5 P6 P7 P8 P9 P19 P20 75
76 Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 P4 P5 P6 P7 P8 P9 P19 P reg P21 76
77 Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 P4 P5 P6 P7 P8 P9 P19 P reg P21 77
78 Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P22 P7 P8 P9 P19 P reg P21 78
79 Resumo do Exemplo Fase Arquivo1 Arquivo2 Arquivo3 Arquivo4 N. de leituras 1 1:100 2:100 3:100 21: :100 5:100 6:100 22: :100 8:100 9:100 23: :100 11:100 12:100 24: :100 14:100 15:100 25: :100 17:100 18:100 26: :100 20:100 21:300 27: :300 23:300 24:300 28: :300 26:300 27:500 29: :900 29: : TOTAL 6300 Número de passos = 6300 = ,15 79
80 Resumo do Exemplo Fase Arquivo1 Arquivo2 Arquivo3 Arquivo4 N. de leituras 1 1:100 2:100 3:100 21: :100 5:100 6:100 22: :100 8:100 9:100 23: :100 11:100 12:100 24: :100 14:100 15:100 25: :100 17:100 18:100 26: :100 20:100 21:300 27: :300 23:300 24:300 28: :300 26:300 27:500 29: :900 29: : TOTAL 6300 Notar que o conceito de Fase desse algoritmo é diferente do usado no algoritmo anterior. Usando esse conceito o algoritmo anterior teria 21 fases. Número de passos = 6300 = ,15 80
81 Possível forma de Implementação } Usar uma lista que contém os nomes dos arquivos a ordenar } A cada passo do algoritmo, retirar os 3 primeiros itens da lista, intercalá-los, colocar o arquivo resultante no final da lista } O algoritmo pára quando a lista tiver apenas 1 arquivo (que será o resultante) 81
82 Exemplo (F = 4 e 10 partições): P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 82
83 Exemplo (F = 4 e 10 partições): P4 P5 P6 P7 P8 P9 P10 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 P1 P2 P3 83
84 Exemplo (F = 4 e 10 partições): P4 P5 P6 P7 P8 P9 P10 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P11 84
85 Exemplo (F = 4 e 10 partições): P4 P5 P6 P7 P8 P9 P10 P11 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 85
86 Exemplo (F = 4 e 10 partições): P7 P8 P9 P10 P11 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 P4 P5 P6 86
87 Exemplo (F = 4 e 10 partições): P7 P8 P9 P10 P11 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P12 87
88 Exemplo (F = 4 e 10 partições): P7 P8 P9 P10 P11 P12 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 88
89 Exemplo (F = 4 e 10 partições): P10 P11 P12 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 P7 P8 P9 89
90 Exemplo (F = 4 e 10 partições): P10 P11 P12 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P13 90
91 Exemplo (F = 4 e 10 partições): P10 P11 P12 P13 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 91
92 Exemplo (F = 4 e 10 partições): P13 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 P reg P reg P12 92
93 Exemplo (F = 4 e 10 partições): P13 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P14 93
94 Exemplo (F = 4 e 10 partições): P13 P14 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 94
95 Exemplo (F = 4 e 10 partições): Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P reg P14 95
96 Exemplo (F = 4 e 10 partições): Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo reg P15 96
97 Exemplo (F = 4 e 10 partições): P15 Entrada Saída Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 4 } DICA: agora basta renomear a partição P15 para o nome do arquivo de saída desejado 97
98 Escolha do melhor método } Seleção com Substituição ou Seleção Natural? } Depende do cenário: } Usar a estimativa de tamanho das partições para decidir } Verificar se há restrições quanto ao número de arquivos que podem ser manipulados ao mesmo tempo para decidir entre Intercalação Ótima ou Árvore de Vencedores 98
99 Cenário 1 } Arquivo com registros de cliente } Restrições } Limite de memória: registros (M = ) } Apenas 10 arquivos podem ser manipulados ao mesmo tempo 99
100 Cenário 1 Geração de Partições } Seleção com Substituição } Partições de tamanho médio 2 * M = } Número de partições geradas = / = 10 } Custo de I/O = } Seleção Natural } Partições de tamanho médio e * M = 2,718 * = } Número de partições geradas = / = 8 } Custo de I/O = custo do reservatório 8-1 vezes = * 7 =
101 Cenário 1 Intercalação } Seleção com Substituição } 10 partições, 2 fases } FASE 1 = * 9 = } FASE 2 = = } TOTAL = } Seleção Natural } 8 partições, 1 fase } FASE 1 =
102 Cenário 1 - Totais } Seleção com Substituição } Geração + Intercalação = = } Seleção Natural } Geração + Intercalação = = } Método escolhido para geração das partições: Seleção Natural 102
103 Cenário 2 } Arquivo com registros de cliente } Restrições } Limite de memória: registros (M = ) } Apenas 10 arquivos podem ser manipulados ao mesmo tempo 103
104 Cenário 2 Geração de Partições } Seleção com Substituição } Partições de tamanho médio 2 * M = } Número de partições geradas = / = 20 } Custo de I/O = } Seleção Natural } Partições de tamanho médio e * M = 2,718 * = } Número de partições geradas = / = 15 } Custo de I/O = custo do reservatório 15-1 vezes = * 14 =
105 Cenário 2 Intercalação } Seleção com Substituição } 20 partições, 3 fases } FASE 1 = * 9 = } FASE 2 = * 9 = } FASE 3 = = } TOTAL = } Seleção Natural } 15 partições, 2 fases } FASE 1 = * 9 = } FASE 2 = * = } TOTAL =
106 Cenário 2 - Totais } Seleção com Substituição } Geração + Intercalação = = } Seleção Natural } Geração + Intercalação = = } Método escolhido para geração das partições: Seleção com Substituição 106
107 Implementação } Problema: fazer intercalação de N partições ordenadas para gerar um único arquivo ordenado } Restrição: Sistema Operacional pode lidar com apenas 4 arquivos ao mesmo tempo } Entrada: } Lista com nomes dos arquivos a intercalar } Saída: } Arquivo resultante ordenado, chamado saida.dat 107
108 Exercício } Implementar o algoritmo de intercalação utilizando árvore binária de vencedores } Entrada: } Lista com os nomes dos arquivos de entrada } Nome do arquivo de saída } Estrutura dos arquivos: Clientes (CodCliente, Nome, DataNascimento) 108
Classificação Externa: Intercalação de Partições Classificadas
Classificação Externa: Intercalação de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Relembrando: Modelo da Classificação Externa 2 Aula Passada: Etapa
Arquivos Seqüenciais: Intercalação
Arquivos Seqüenciais: Intercalação Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Cenário Diversos arquivos sequenciais ordenados Problema: gerar um único arquivo ordenado a partir
Classificação Externa: Geração de Partições Classificadas
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
Classificação Externa: Geração de Partições Classificadas
Classificação Externa: Geração de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Cenário: Arquivos Sequencias } Acesso não pode ser feito em posições aleatórias
ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO DE ARQUIVOS GRANDES Para arquivos binários, é possível implementar o
ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós
Intercalação de vários arquivos. Estrutura de Dados II Prof Jairo Francisco de Souza
Intercalação de vários arquivos Estrutura de Dados II Prof Jairo Francisco de Souza Arquivos Um conjunto de registros que caracteriza uma classe de entidades pode ser mantido em memória principal, quando
Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa
Ordenação Externa Ordenação Externa Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação
Algoritmo MergeSort. Estrutura de Dados II Prof Jairo Francisco de Souza
Algoritmo MergeSort Estrutura de Dados II Prof Jairo Francisco de Souza Intercalação Generalidades Intercalação é o processo através do qual diversos arquivos seqüenciais classifcados por um mesmo critério
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;
heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i0 && x[f]
Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome
Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO
Árvores Genéricas de Busca
Árvores Genéricas de Busca Árvores não binárias também podem ser usadas para buscar elementos. Essas árvores são chamadas de árvores genéricas de busca, e elas podem ser de dois tipos: árvore de busca
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
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 Tópicos Introdução Ordenação por bolha (bubble sort)
Memória secundária. Memória secundária
introdução ordenação interna ordenação externa ordenar processo de rearranjar um conjunto de itens em uma ordem ascendente ou descendente visa facilitar a recuperação posterior de itens do conjunto ordenado
Algoritmos de Ordenação. Profº Carlos Alberto T. Batista
Algoritmos de Ordenação Profº Carlos Alberto T. Batista E-mail: [email protected] [email protected] Por que ordenar os dados? Encontrar elementos em uma lista torna-se algo simples e
Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 032/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Edital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 055/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Árvores Binárias e AVL Felipe Barros Pontes Gustavo Márcio de Morais Cunha Márcio de Medeiros Ribeiro
Universidade Federal de Alagoas - UFAL Departamento de Tecnologia da Informação - TCI Ciência da Computação Árvores Binárias e AVL Felipe Barros Pontes Gustavo Márcio de Morais Cunha Márcio de Medeiros
ALGORITMOS DE ORDENAÇÃO
ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,
void subdivide (LISTA_ENC *pl, LISTA_ENC *pl1, LISTA_ENC *pl2) { int cont, k=1; for (cont=tam(*pl)/2;cont;cont--) {
void subdivide (LISTA_ENC *pl, LISTA_ENC *pl1, LISTA_ENC *pl2) { int cont, k=1; for (cont=tam(*pl)/2;cont;cont--) { } ins(pl1,recup(*pl,1),k++); ret(pl,1); } for (k=1, cont=tam(*pl);cont;cont--) { ins(pl2,recup(*pl,1),k++);
Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 053/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Lista de Exercícios sobre Listas Implementadas por Encadeamento
Lista de Exercícios sobre Listas Implementadas por Encadeamento 1) Se você tem de escolher entre uma representação por lista encadeada ou uma representação usando posições contíguas de memória para um
Análise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenação Mario E. Matiusso Jr. (11028407) Bacharelado em Ciências da Computação Universidade Federal do ABC (UFABC) Santo André, SP Brasil mario3001[a]ig.com.br Resumo:
Ordenação em Memória Primária Estrutura de Dados II
- Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Ordenação em Memória Primária Estrutura de Dados II Estrutura de Dados II COM10078-2017-I Prof. Marcelo Otone Aguiar [email protected]
BCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 13: Ordenação: MergeSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: [email protected]
Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral
SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas
Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura
Árvores B Prof. Márcio Bueno [email protected] / [email protected] Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes
ESTRUTURA DE DADOS ORDENANDO LISTAS
ESTRUTURA DE DADOS ORDENANDO LISTAS Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender o que são ordenações por seleção e por inserção Capacitar para implementar ambos os tipos de ordenação Material
ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORE B Vanessa Braganholo Estruturas de Dados e Seus Algoritmos INTRODUÇÃO 2 ARQUIVOS DE ACESSO DIRETO Basicamente, duas formas de acesso a um registro: Acesso via cálculo do endereço do registro (hashing)
Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)
Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01
Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Classificação por Seleção Direta
Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Direta Prof. Gustavo Callou [email protected] [email protected] Classificação por Inserção Métodos de Classificação em Memória
Memória Secundária e Ordenação externa Algoritmos e Estruturas de Dados III
Memória Secundária e Ordenação externa Algoritmos e Estruturas de Dados III Diego de Moura Duarte [email protected] 5 de Junho de 008 1 Memória secundária 1.1 Hierarquia de memórias Para entendermos
Arquivos Seqüenciais Atualização em Lote
Arquivos Seqüenciais Atualização em Lote Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Cenário } Arquivos Sequenciais Ordenados } Objetivo: atualizar o arquivo, mantendo sua
Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação.
Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação. Particularmente adequada quando existe necessidade de considerar todos ou alguma combinação
Dicionários. TAD Orientado a conteúdo
Dicionários TAD Orientado a conteúdo Dicionários efinição: Tipo abstrato de dados orientado a onteúdo. Contrasta com as PILHAs e FILAs que são orientadas a posição. perações implementadas: Inserir(d,x)
Árvores Binárias de Busca
Árvores Binárias de Busca SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto
Estruturas de Dados Apresentação
Estruturas de Dados Apresentação Prof. Eduardo Alchieri Objetivos Apresentar técnicas fundamentais na análise e projeto de estruturas de dados em programas computacionais Vamos aprender: Quais são as principais
MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI2
MÉTODOS DE ORDENAÇÃO Introdução à Programação SI2 2 Conteúdo Conceitos básicos Classificação por troca Classificação por inserção Classificação por seleção 3 Conceitos Básicos Ordenar: processo de rearranjar
Ordenação Externa. Profa. Graça Nunes
Ordenação Externa Profa. Graça Nunes Ordenação Externa Ordenar arquivos de tamanho maior que a memória interna disponível Algoritmos devem diminuir o número de acessos às unidades de memória externa Custo
ALGORITMOS AVANÇADOS. UNIDADE V Estruturas de dados dos tipos Árvore Binária e Árvore AVL. Luiz Leão
UNIDADE V Estruturas de dados dos tipos Árvore Binária e Árvore AVL Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 5.1 - Árvores, Árvores Binárias e Árvores Binárias de Busca
ESTRUTURA DE DADOS ORDENANDO LISTAS
ESTRUTURA DE DADOS ORDENANDO LISTAS Prof. Dr. Daniel Caetano 2012-2 Objetivos Compreender o que são ordenações por seleção e por inserção Capacitar para implementar ambos os tipos de ordenação GRUPOS?
Teoria da Computação. Aula 9 Pesquisa em Memória Secundária 5COP096. Aula 9 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP096 Teoria da Computação Aula 9 Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr [email protected] 1 Sumário 1) Introdução à Pesquisa em Memória Secundária 2) Modelo de Computação para Memória Secundária
Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
Ordenação: QuickSort. Prof. Túlio Toffolo BCC202 Aula 15 Algoritmos e Estruturas de Dados I
Ordenação: QuickSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 15 Algoritmos e Estruturas de Dados I QuickSort Proposto por Hoare em 1960 e publicado em 1962. É o algoritmo de ordenação
Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19
Arvores, Percursos não recursivos, Arvores heterogêneas Aula 19 Arvores binárias encadeadas Percorrer uma árvore é uma operação muito comum e seria útil encontrar um método mais eficiente para implementar
ORGANIZAÇÃO DE ARQUIVOS INDEXADOS
ORGANIZAÇÃO DE ARQUIVOS INDEXADOS Um índice consiste numa coleção de entradas, uma para cada registro de dados, contendo o valor de uma chave de atribuição e um ponteiro de referência que acessa imediatamente
B-Árvores. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados
MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nos artigos Bayer, R. and E. McCreight. Organization and maintenance of large ordered
SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca
ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização
Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo
PMR2300 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó (exceto a
Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore.
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática
# Estrutura de Dados # Aula 06 Pilhas Estáticas. Prof. Leinylson Fontinele Pereira
# Estrutura de Dados # Aula 06 Pilhas Estáticas Prof. Leinylson Fontinele Pereira Na aula anterior... Filas Estáticas Sequencial # Propriedades # Operações fundamentais Introdução 3 O que vamos aprender?
Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca
Introdução à Inteligência Artificial MAC 5739 - MAC 415 006 Exercício Programa 1 Busca Data de Divulgação: 6 de agosto Data de Entrega: 6 de setembro 1 Objetivo Implementar os algoritmos de busca em Inteligência
2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
Capítulo 5 Abstracção de dados 5. Exercícios de revisão. Diga o que é um tipo abstracto de informação.. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
B-tree. B-Trees. Estrutura do nodo da B-tree. Balanceamento. Disposição dos elementos ordenados na B-tree. Exemplo de uma B-tree de ordem 3
B-tree B-Trees Material da Prof. Denise Bandeira, aula de Christian Hofsetz B-Trees são árvores balanceadas. Diferente das árvores binárias, os nós de uma B-tree podem ter um número variável de nodos filho.
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Lista de Exercícios 04
Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professor: Túlio Toffolo (www.decom.ufop.br/toffolo)
Estruturas de Dados 2
Estruturas de Dados 2 Técnicas de Projeto de Algoritmos Dividir e Conquistar IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/83 Projeto de Algoritmos por Divisão
Acesso Sequencial Indexado
Acesso Sequencial Indexado Utiliza o princípio da pesquisa seqüencial cada registro é lido seqüencialmente até encontrar uma chave maior ou igual a chave de pesquisa. Providências necessárias para aumentar
Técnicas Inteligência Artificial
Universidade do Sul de Santa Catarina Ciência da Computação Técnicas Inteligência Artificial Aula 03 Métodos de Busca Parte 1 Prof. Max Pereira Solução de Problemas como Busca Um problema pode ser considerado
Sistemas de arquivos
Todos os programas precisam armazenar e recuperar dados. Os processos não podem armazenar grande quantidade de dados no seu espaço de endereçamento. Quando o processo chega ao final os dados no seu espaço
Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo
Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária Túlio Toffolo www.decom.ufop.br/toffolo Pesquisa em Memória Primária n Introdução - Conceitos Básicos n Pesquisa Sequencial n Pesquisa Binária n Árvores
Operações Coseqüenciais. Processamento Coseqüencial. Modelo para implementação de processos coseqüenciais
Processamento Coseqüencial Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures Operações Coseqüenciais Envolvem o processamento coordenado (simultâneo) de duas ou mais listas de
Aula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Aula 15: Pesquisa em Memória Primária Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa Binária Árvores de
ÁRVORE BINÁRIA DE BUSCA
ÁRVORE BINÁRIA DE BUSCA Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e remover elementos
Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Árvores (parte 3) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.
Classificação e Pesquisa Aula 6 Métodos de Ordenação: ShellSort e QuickSort. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional
Classificação e Pesquisa Aula 6 Métodos de Ordenação: ShellSort e QuickSort Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Plano de Ensino e Aprendizagem ( PEA) Algoritmo ShellSort Proposto por
Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa.
Algoritmos e Estruturas de Dados II Ordenação Externa II Profa. Debora Medeiros As análises dos métodos de ordenação tradicionais se preocupam basicamente com o tempo de execução dos algoritmos Ordem computacional
Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas
O Problema da Ordenação Métodos de Ordenação Parte 1
Métodos de Ordenação Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2010 Ordenação (ou classificação) é largamente utilizada Listas telefônicas e dicionários Grandes sistemas de BD
ÁRVORES E ÁRVORES BINÁRIAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES E ÁRVORES BINÁRIAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES Árvores Árvores Binárias INSTITUTO DE COMPUTAÇÃO - UFF 2 ÁRVORES Fonte de consulta: Szwarcfiter, J.; Markezon,
Ordenação: HeapSort. Prof. Túlio Toffolo BCC202 Aula 17 Algoritmos e Estruturas de Dados I
2014-01 Aula 16 Fila de Prioridade / HeapSort Adaptado por Reinaldo Fortes para o curso de 2014-01 Arquivo original: Aula 17: HeapSort Ordenação: HeapSort Prof. Túlio Toffolo http://www.toffolo.com.br
