Prefácio... xlvii Objetivos e Público-alvo. Organização do Livro Volume 2 Volume 1. xlix Análise de Algoritmos. l Exemplos de Programação

Tamanho: px
Começar a partir da página:

Download "Prefácio... xlvii Objetivos e Público-alvo. Organização do Livro Volume 2 Volume 1. xlix Análise de Algoritmos. l Exemplos de Programação"

Transcrição

1 Visão Geral da Obra... v Conteúdo Resumido...vii Conteúdo Completo...ix Lista de Figuras...xxvii Lista de Tabelas...xxxix Lista de Algoritmos...xli Lista de Algoritmos...xlv Prefácio... xlvii Objetivos e Público-alvo xlvii Organização do Livro xlvii Volume 2 xlvii Volume 1 xlix Análise de Algoritmos l Exemplos de Programação l Exercícios li Material Complementar li Recursos Utilizados li Agradecimentos li Parte 1: Memórias Internas e Externas ix

2 x Tabela de Conteúdo 1 Organização de Memória Meios de Armazenamento Memória RAM Memórias ROM, PROM, EPROM e EEPROM Discos Magnéticos 58 Características Físicas Importantes 58 Geometria de Superfície 59 Capacidade 60 Acesso a Setores 61 Medidas de Desempenho 61 Armazenamento de Arquivos 64 Otimização de Acesso a Blocos Memórias Flash 65 Discos SSD 65 Pen Drive Fitas Magnéticas Acesso a Dispositivos de Entrada e Saída Arquitetura Básica de um Computador Dispositivos de Entrada e Saída Operações de Entrada e Saída Hierarquias de Memória Caching Localidade de Referência Localidades Temporal e Espacial Localidade de Acesso a Instruções Blocagem e Memória Virtual Uso de Registradores Melhorando a Localidade de Referência de um Programa Análise de Algoritmos em Memória Secundária Exemplo de Programação Medindo Tempo de Execução Exercícios de Revisão 86 Meios de Armazenamento (Seção 1.1) 86 Acesso a Dispositivos de Entrada e Saída (Seção 1.2) 88 Hierarquias de Memória (Seção 1.3) 89 Caching (Seção 1.4) 89 Localidade de Referência (Seção 1.5) 89 Análise de Algoritmos em Memória Secundária (Seção 1.6) 91 Exemplo de Programação (Seção 1.7) 92 2 Processamento de Arquivos em C Arquivos de Texto e Binários Streams2.2 94

3 Tabela de Conteúdo xi Conceito Estruturas do Tipo FILE Abrindo e Fechando um Arquivo Função fopen() Streams de Texto e Binários Modos de Abertura Fechando um Arquivo Ocorrências de Erros Buffering e a Função fflush() Streams Padrão Leitura e Escrita Formatadas Saída Formatada Funções fprintf() e sprintf() Entrada Formatada e fscanf() Trabalhando com Arquivos Temporários Removendo e Rebatizando Arquivos A Função ungetc() Tipos de Processamento Processamento Sequencial 107 Por Byte 107 Por Linha 107 Por Bloco 109 Algoritmo Geral para Leitura Sequencial de Arquivos Processamento por Acesso Direto 111 Movimentação do Indicador de Posição 111 Leitura e Escrita Inserção, Remoção e Alteração de Registros rewind() ou fseek()? Condições de Exceção e a Lei de Murphy Lidando com Arquivos Grandes em C Portabilidade Índice de Registro e Índice de Byte Exemplos de Programação Saltando Linhas de um Arquivo de Texto Copiando Arquivos Atualizando Registros de um Arquivo de Texto Convertendo um Arquivo de Registros de Texto para Binário Exercícios de Revisão Arquivos de Texto e Binários (Seção 2.1) 126 Streams (Seção 2.2) 126 Abrindo e Fechando um Arquivo (Seção 2.3) 126 Ocorrências de Erros (Seção 2.4) 128 Buffering e a Função fflush() (Seção 2.5) 128 Streams Padrão (Seção 2.6) 128

4 xii Tabela de Conteúdo Leitura e Escrita Formatadas (Seção 2.7) 128 Trabalhando com Arquivos Temporários (Seção 2.8) 129 Removendo e Rebatizando Arquivos (Seção 2.9) 129 A Função ungetc() (Seção 2.10) 129 Tipos de Processamento (Seção 2.11) 129 rewind() ou fseek()? (Seção 2.12) 133 Condições de Exceção e a Lei de Murphy (Seção 2.13) 133 Lidando com Arquivos Grandes em C (Seção 2.14) 133 Exemplos de Programação (Seção 2.15) Exercícios de Programação Parte 2: Busca 3 Busca Linear em Memória Principal Definições Fundamentais Programas Clientes Busca Sequencial Simples Conceitos Implementação 145 Definições de Tipos 145 Criação e Destruição 146 Busca 146 Inserção 148 Remoção 149 Construção Análise Busca Sequencial com Movimentação Conceitos Implementação Usando Lista Encadeada 153 Busca Sequencial com Transposição 153 Busca Sequencial com Movimentação para Início Análise Busca Linear em Tabela Ordenada Busca Binária 159 Conceito 159 Implementação 160 A Função bsearch() Busca por Interpolação 161 Conceito 161 Implementação Análise Listas com Saltos Motivação e Conceito 166 Busca 167

5 Tabela de Conteúdo xiii Inserção 168 Remoção Implementação 170 Definições de Tipos 170 Iniciação 171 Busca 172 Inserção 172 Remoção Análise Resultados Experimentais Exemplos de Programação Busca de Fibonacci Busca com Chaves Secundárias Piso de Chave Busca de Intervalo Exercícios de Revisão 188 Definições Fundamentais (Seção 3.1) 188 Programas Clientes (Seção 3.2) 189 Busca Sequencial Simples (Seção 3.3) 189 Busca Sequencial com Movimentação (Seção 3.4) 190 Busca Linear em Tabela Ordenada (Seção 3.5) 190 Listas com Saltos (Seção 3.6) Exemplos de Programação (Seção 3.7) Exercícios de Programação Busca Hierárquica em Memória Principal Árvores Binárias de Busca Conceitos 196 Inserção 198 Busca 200 Remoção Implementação 203 Definições de Tipos 204 Iniciação 204 Busca 204 Inserção 204 Remoção Análise Rotações em Árvores Binárias de Busca Balanceamento de Árvores Binárias de Busca Árvores AVL Motivação e Conceito Inserção 218 Caso 1: Desbalanceamento Esquerda-esquerda 219

6 xiv Tabela de Conteúdo Caso 2: Desbalanceamento Esquerda-direita 220 Caso 3: Desbalanceamento Direita-direita 221 Caso 4: Desbalanceamento Direita-esquerda Remoção 225 Desbalanceamento esquerda-esquerda 225 Desbalanceamento esquerda-direita 225 Desbalanceamento direita-direita 226 Desbalanceamento direita-esquerda 226 Propagação de Desbalanceamento Causado por Remoção Implementação 228 Definições de Tipos 228 Busca 229 Inserção 229 Remoção Análise Árvores Binárias Afuniladas Conceitos Afunilamento 234 Caso 1: O Alvo É Filho da Raiz (Zig e Zag) 235 Caso 2: Configuração Homogênea (Zig-zig e Zag-zag) 235 Caso 3: Configuração Heterogênea (Zag-zig e Zig-zag) 236 Exemplos de Afunilamento 237 Afunilamentos Ascendente e Descendente Operações Básicas 242 Busca 242 Inserção 242 Remoção Implementação Descendente 245 Definições de Tipos 245 Afunilamento 245 Busca 247 Inserção 247 Remoção Análise Comparando Árvores Binárias de Busca Exemplos de Programação Menor e Maior Chaves numa Árvore de Busca Exibindo as Chaves de uma Árvore Binária Ordenadas Checando Árvores Binárias de Busca Checando Balanceamento AVL Exercícios de Revisão 257 Árvores Binárias de Busca (Seção 4.1) 257 Rotações em Árvores Binárias de Busca (Seção 4.2) 261 Balanceamento de Árvores Binárias de Busca (Seção 4.3) 262

7 Tabela de Conteúdo xv Árvores AVL (Seção 4.4) 262 Árvores Binárias Afuniladas (Seção 4.5) 266 Comparando Árvores Binárias de Busca (Seção 4.6) Exemplos de Programação (Seção 4.7) Exercícios de Programação Análise Amortizada Fundamentos Conceitos Comparação com Análise Assintótica de Caso Médio Métodos de Análise Amortizada Método de Agregado Método Contábil Método de Potencial Comparação de Métodos de Análise Amortizada Exemplos de Análise Amortizada 277 Análise pelo Método de Agregado 277 Análise pelo Método Contábil 278 Análise pelo Método de Potencial Análise Amortizada de Array Dinâmico Usando Método de Agregado Usando Método Contábil Usando Método de Potencial Efeito do Crescimento Geométrico Análise Amortizada de Árvores Afuniladas Exercícios de Revisão 287 Fundamentos (Seção 5.1) 287 Métodos de Análise Amortizada (Seção 5.2) 287 Análise Amortizada de Array Dinâmico (Seção 5.3) 288 Análise Amortizada de Árvores Afuniladas (Seção 5.4) Busca Hierárquica em Memória Secundária Árvores Multidirecionais Descendentes de Busca Conceitos Busca Inserção Remoção Implementação em Memória Principal Análise Estruturas de Dados em Memória Secundária Árvores Multidirecionais em Memória Secundária Dimensionamento de Grau e Preenchimento de Estruturas Tratamento de Exceções Leitura e Escrita de Nós 303

8 xvi Tabela de Conteúdo Busca Inserção Remoção Árvores B Conceitos Busca Inserção Remoção Implementação 322 Tipos e Constantes 322 Funções Auxiliares 322 Busca 326 Inserção 327 Remoção Persistência de Dados Programa-cliente Análise Árvores B Conceitos Busca Inserção Remoção Busca de Intervalo Implementação Análise Outras Variantes de Árvores B Comparação de Árvores Multidirecionais de Busca Exemplos de Programação Caminhamento em Árvore Multidirecional de Busca Menor e Maior Chaves de uma Árvore Multidirecional de Busca Número de Nós de uma Árvore B Número de Chaves de uma Árvore B Altura de uma Árvore B Busca de Intervalo em Árvore B Exercícios de Revisão 355 Árvores Multidirecionais Descendentes de Busca (Seção 6.1) 355 Estruturas de Dados em Memória Secundária (Seção 6.2) 356 Árvores Multidirecionais de Busca em Memória Secundária (Seção 6.3) 356 Árvores B (Seção 6.4) 357 Árvores B+ (Seção 6.5) 359 Outras Variantes de Árvores B (Seção 6.6) 360 Comparação de Árvores Multidirecionais de Busca (Seção 6.7) 360 Exemplos de Programação (Seção 6.8) Exercícios de Programação 361

9 Tabela de Conteúdo xvii 7 Dispersão em Memória Principal Conceitos, Terminologia e Aplicações Funções e Tabelas de Dispersão Colisões e Resoluções de Colisões Fator de Carga Aplicações de Dispersão Funções de Dispersão Propriedades Desejáveis 367 Simplicidade 368 Eficiência 368 Uniformidade 368 Determinismo 368 Independência 368 Avalanche Tipos de Chaves 369 Chaves Inteiras 369 Chaves Reais 369 Strings 369 Chaves Compostas Métodos de Cálculo de Dispersão 370 Método Aditivo 370 Método Polinomial 370 Método Tabular 370 Método de Divisão Modular 370 Método de Multiplicação 371 Método de Disjunção Exclusiva (XOR) 371 Método Rotativo 372 Método de Dispersão por Mistura Anatomia de uma Função de Dispersão Bem Elaborada Testando uma Função de Dispersão Recomendações Práticas Dispersão com Encadeamento Conceitos 375 Fator de Carga 375 Busca 376 Inserção 376 Remoção Implementação 377 Definições de Tipos 377 Iniciação da Tabela 377 Busca 378 Inserção 378 Remoção 379

10 xviii Tabela de Conteúdo Análise Dispersão com Endereçamento Aberto Conceitos Resolução de Colisões (Sondagens) 381 Sondagem Linear 381 Sondagem Quadrática 383 Sondagem com Dispersão Dupla Operações Básicas 385 Busca 385 Inserção 385 Remoção Implementação 386 Definições de Tipos 386 Iniciação da Tabela 387 Busca 387 Inserção 388 Remoção Análise 389 Custos Temporais em Sondagem Linear 390 Custos Temporais em Sondagens Quadrática e com Dispersão Dupla 390 Custo Espacial 390 Comparando Métodos de Sondagem Redimensionamento de Dispersão Conceito Implementação Análise Dispersão Cuco Conceitos Operações Básicas 397 Busca 397 Inserção 397 Remoção Implementação 399 Tipos 399 Criação 399 Busca 400 Inserção 400 Remoção Análise Análise de Técnicas de Dispersão Exemplos de Programação Testando uma Função de Dispersão Pronta O Filtro de Bloom Exercícios de Revisão 414

11 Tabela de Conteúdo xix Conceitos, Terminologia e Aplicações (Seção 7.1) 414 Funções de Dispersão (Seção 7.2) 414 Dispersão com Encadeamento (Seção 7.3) 418 Dispersão com Endereçamento Aberto (Seção 7.4) 418 Redimensionamento de Dispersão (Seção 7.5) 421 Dispersão Cuco (Seção 7.6) 421 Análise de Técnicas de Dispersão (Seção 7.7) Exemplos de Programação (Seção 7.8) Exercícios de Programação Dispersão em Memória Secundária Dispersão Estática em Memória Secundária Motivação e Conceitos Operações Básicas 424 Inserção 424 Busca 425 Remoção Implementação 426 Definições de Tipos e Constantes 426 Funções Auxiliares 427 Iniciação 428 Busca 428 Inserção 429 Remoção Análise Dispersão Extensível em Memória Secundária Conceitos Inserção Busca Remoção Uso de Coletores Excedentes Implementação 441 Definições de Tipos e Constantes 441 Iniciação 441 Busca 442 Inserção 443 Remoção Análise 449 Vantagens 449 Desvantagens 449 Custo Espacial Avaliação de Dispersão em Memória Secundária Exemplos de Programação Número de Coletores Primários Vazios em Dispersão Estática 450

12 xx Tabela de Conteúdo Número de Coletores Excedentes em Dispersão Estática Maior Profundidade Local numa Tabela de Dispersão Extensível Exercícios de Revisão 452 Dispersão Estática em Memória Secundária (Seção 8.1) 452 Dispersão Extensível em Memória Secundária (Seção 8.2) 453 Avaliação de Dispersão em Memória Secundária (Seção 8.3) Exemplos de Programação (Seção 8.4) Exercícios de Programação Casamento de Strings e Tries Conceitos Terminologia Visualização Casamento de Strings com Retrocesso Casamento de Strings por Força Bruta (FB) Visão Geral Algoritmo Implementação Análise Algoritmo de Knuth, Morris e Pratt (KMP) Visão Geral Tabela de Maiores Bordas Algoritmos Implementação Análise Algoritmo de Boyer e Moore (BM) Visão Geral Heurística do Mau Caractere Heurística do Bom Sufixo Algoritmos Implementação Análise Algoritmo (ou Simplificação) de Horspool (BMH) Visão Geral Algoritmos Implementação Análise Algoritmo de Karp e Rabin (KR) Visão Geral Algoritmo Implementação Análise Comparando Algoritmos de Casamento de Strings Tries 492

13 Tabela de Conteúdo xxi Conceitos Busca Inserção Remoção Implementação Análise Implementações Alternativas de Tries Casamento de Strings vs Casamento de Palavras Exemplos de Programação Separando um String em Partes (Tokens) Quantas Vezes Machado Fala em Amor? Maior Prefixo Comum (MPC) a um Conjunto de Strings Maior Subsequência Comum (MSC) a Dois Strings Distância de Edição Casamento Léxico Casamento de Strings em Fluxo Contínuo Exercícios de Revisão Terminologia e Conceitos (Seção 9.1) 532 Casamento de Strings por Força Bruta (FB) (Seção 9.2) 532 Algoritmo de Knuth, Morris e Pratt (KMP) (Seção 9.3) 533 Algoritmo de Boyer e Moore (BM) (Seção 9.4) 533 Algoritmo (ou Simplificação) de Horspool (BMH) (Seção 9.5) 533 Algoritmo de Karp e Rabin (KR) (Seção 9.6) 534 Comparando Algoritmos de Casamento de Strings (Seção 9.7) 535 Tries (Seção 9.8) 535 Casamento de Strings vs Casamento de Palavras (Seção 9.9) 536 Exemplos de Programação (Seção 9.10) Exercícios de Programação Parte 3: Ordenação 10 Filas de Prioridade e Heaps Filas de Prioridade Conceitos Aplicações Implementações Heaps Binários Conceitos Inserção Remoção Criação Outras Operações 551 Consulta 551 Acréscimo de Prioridade 551

14 xxii Tabela de Conteúdo Decréscimo de Prioridade 551 Remoção de Elemento Específico Implementação Análise Análise de Filas de Prioridade Simulação de Eventos Discretos Exemplos de Programação Codificação Canônica de Huffman 559 Compressão 563 Descompressão A Lanchonete HeapBurger Exercícios de Revisão 580 Filas de Prioridade (Seção 10.1) 580 Heaps Binários (Seção 10.2) 581 Análise de Filas de Prioridade (Seção 10.3) 584 Simulação de Eventos Discretos (Seção 10.4) Exemplos de Programação (Seção 10.5) Exercícios de Programação Ordenação em Memória Principal Fundamentos de Ordenação Conceitos Básicos 588 Estabilidade 588 Uso de Espaço Adicional 589 Ordenações Interna e Externa 589 Algoritmos de Propósito Geral e Específico 590 Ordenações Baseadas em Comparações e Distribuições 590 Ordenação Adaptativa 590 Ordenações Online e Offline 590 Métodos de Ordenação 590 Estado de Ordenação e Inversões Aplicações de Ordenação Ordenação com Custo Temporal Quadrático Ordenação por Borbulhamento (BubbleSort) 592 Descrição 592 Implementação 593 Análise Ordenação por Seleção Direta (SelectionSort) 594 Descrição 594 Implementação 595 Análise Ordenação por Inserção (InsertionSort) 597 Descrição 597 Implementação 597

15 Tabela de Conteúdo xxiii Análise Ordenação com Custo Temporal Linear Logarítmico QuickSort 600 Descrição 600 Implementação Básica 603 Implementação com Mediana de Três e Ponto de Corte 604 Implementação com Pivô Aleatório 604 Análise Ordenação por Intercalação (MergeSort) 607 Descrição 607 Implementação 609 Ordenação de Listas Encadeadas com MergeSort 611 Análise Ordenação com Heap (HeapSort) 613 Descrição 613 Implementação 616 Análise Ordenação com Custo Temporal Linear Ordenação por Contagem (CountingSort) 619 Descrição 619 Implementação 620 Análise Ordenação com Coletores (BucketSort) 623 Descrição 623 Implementação 624 Análise Ordenação por Base (RadixSort) 626 Descrição 626 Implementação 627 Análise Limite Inferior de Algoritmos Baseados em Comparações Algoritmos de Divisão e Conquista Avaliações de Métodos de Ordenação Algoritmos com Custos Temporais Quadráticos Algoritmos com Custos Temporais Linear Logarítmicos Algoritmos com Custos Temporais Lineares Resumo da Avaliação Avaliação Experimental Exemplos de Programação Ordenação de Lista Simplesmente Encadeada Ordenação de Ponteiros O Problema da Bandeira Holandesa Encontrando Chaves Duplicadas Eficientemente Lista Bitônica 644

16 Exercícios de Revisão 645 Fundamentos de Ordenação (Seção 11.1) 645 Ordenação com Custo Temporal Quadrático (Seção 11.2) 646 Ordenação com Custo Temporal Linear Logarítmico (Seção 11.3) 647 Ordenação com Custo Temporal Linear (Seção 11.4) 650 Limite Inferior para Algoritmos Baseados em Comparações (Seção 11.5) 651 Algoritmos de Divisão e Conquista (Seção 11.6) 651 Avaliações de Métodos de Ordenação (Seção 11.7) 652 Exemplos de Programação (Seção 11.8) Exercícios de Programação Ordenação em Memória Secundária Conceitos Básicos Ordenação de Arquivos por Intercalação Binária Descrição Implementação Análise Intercalação Multíplice de Arrays Descrição do Problema Algoritmo Implementação Análise Ordenação de Arquivos por Intercalação Multíplice Descrição Exemplo Implementação Análise Limite Inferior para Ordenação em Memória Secundária Inserção Massiva em Árvores B+ (Bulkloading) Conceito Algoritmos Exemplo Implementação Análise Exemplos de Programação (Pseudo ) Ordenação de Arquivos por Indexação Testando Ordenação em Memória Secundária Exercícios de Revisão 695 Conceitos Básicos (Seção 12.1) 695 Ordenação de Arquivos por Intercalação Binária (Seção 12.2) 696 Intercalação Multíplice de Arrays (Seção 12.3) 696 Ordenação de Arquivos por Intercalação Multíplice (Seção 12.4) 696 Limite Inferior para Ordenação em Memória Secundária (Seção 12.5) 697 Inserção Massiva em Árvores B+ (Bulkloading) (Seção 12.6) 697 Exemplos de Programação (Seção 12.7) 698

17 12.9 Exercícios de Programação Apêndices A Arquivos de Dados A.1 A.2 A.3 A.4 A.5 A.1 Tudor 702 A.2 CEPs 702 A.3 Censo Escolar 704 A.4 Machado 705 A.5 DNA 705 B Programação Básica de Baixo Nível em C B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 B.9 B.9.1 B.1 Bases Numéricas 707 B.2 Operadores Lógicos de Bits 708 B.3 Operadores de Deslocamento de Bits 709 B.4 Mascaramento 709 B.5 Extraindo Bits Significativos 711 B.5.1 Bits Menos Significativos (LSBs) 711 B.5.2 Bits Mais Significativos (MSB) 712 B.6 Ligando e Desligando Bits 713 B.7 Invertendo um Bit 714 B.8 Consultando um Bit 714 B.9 Exemplos de Programação 715 B.9.1 Representação Binária 715 C.1 B.9.2 Dispersão por Mistura 716 B.10 JOAAT (One-at-a-Time) 721 C Funções de Dispersão Prontas C.2 C.3 C.4 C.5 C.6 C.1 DJB e DJB2 722 C.2 SAX (Shift Add Xor) 723 C.3 FNV 723 C.4 JSW 723 C.5 Breve Avaliação das Funções de Dispersão Prontas 724 D Guia de Nomenclatura Usada em Identificadores D.1 D.1 Regras Básicas de Escrita de Identificadores 727 D.1.1 Variáveis e Parâmetros Formais 727 D.1.2 Macros e Constantes de Enumeração 728 D.1.3 Nomes de Funções 728 D.1.4 Tipos 728 D.2 D.1.5 Rótulos de Estruturas 728 D.2 Glossário de Sufixos de Identificadores 728 E Respostas e Sugestões para os Exercícios de Revisão Capítulo 1 Organização de Memória Capítulo

18 Capítulo 2 Processamento de Arquivos em C Capítulo Capítulo 3 Busca Linear em Memória Principal Capítulo Capítulo 4 Busca Hierárquica em Memória PrincipalCapítulo Capítulo 5 Análise Amortizada Capítulo Capítulo 6 Busca Hierárquica em Memória Secundária Capítulo Capítulo 7 Dispersão em Memória Principal Capítulo Capítulo 8 Dispersão em Memória Secundária Capítulo Capítulo 9 Strings e TextoCapítulo Capítulo 10 Filas de Prioridade e HeapsCapítulo Capítulo 11 Ordenação em Memória Principal Capítulo Capítulo 12 Ordenação em Memória Secundária Capítulo Referências Bibliografia Índice Remissivo...805

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:

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: Lista de Figuras Figura 1 1: Módulo de Memória DRAM 26 Figura 1 2: Um Disco Magnético com Três Pratos e Seis Superfícies 28 Figura 1 3: Geometria de uma Superfície de Disco Magnético 29 Figura 1 4: Um

Leia mais

1 Elementos Básicos da Linguagem C Parte 1: Revisão da Linguagem C

1 Elementos Básicos da Linguagem C Parte 1: Revisão da Linguagem C Conteúdo Resumido... v Tabela de Conteúdo... vii Lista de Figuras... xvii Lista de Tabelas... xxiii Lista de Algoritmos... xxv Prefácio... xxvii Objetivos e Público-alvo Organização do Livro Material Complementar

Leia mais

FCA - Editora de Informática xv

FCA - Editora de Informática xv Índice Geral Agradecimentos ix Prefácio xi Índice das Simulações xxv 1 - Introdução ao mundo dos computadores 1 1.1 O computador como ferramenta... 2 1.2 A importância dos computadores... 4 1.3 Processamento

Leia mais

2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29

2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29 Índice Geral Agradecimentos... vii Prefácio... ix Índice Geral... xiii Índice das Simulações... xxiii Índice das Figuras... xxvii Índice das Tabelas... xli Índice dos Programas... li 1 - Introdução ao

Leia mais

1 Elementos Básicos da Linguagem C 19

1 Elementos Básicos da Linguagem C 19 Conteúdo Prefácio Ao Leitor Objetios Público Alo e Requisitos Organização do Liro Partes Capítulos Apêndices Análise de Algoritmos Exemplos de Programação Exercícios Material Complementar Códigos-fonte

Leia mais

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

Leia mais

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

Leia mais

Objetivos e Público-alvo

Objetivos e Público-alvo Objetivos e Público-alvo A lgoritmos e estruturas de dados constituem os alicerces da programação. Assim, para se tornar um bom programador, o aspirante precisa dominar bem essas ferramentas e saber qual

Leia mais

Pré-Processamento de Documentos

Pré-Processamento de Documentos Pré-Processamento de Documentos Introdução Pré-Processamento : Análise léxica; Stopwords; Stemming; Vocabulário; Thesaurus Compressão: Fundamentos; Método Estatístico; Método Dicionário; Arquivos Invertidos

Leia mais

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 2 1: Figura 2 2: Figura 2 3: Figura 2 4:

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 2 1: Figura 2 2: Figura 2 3: Figura 2 4: Lista de Figuras Figura 1 1: Diagrama de Funcionamento do Laço while 34 Figura 1 2: Diagrama de Funcionamento do Laço do-while 35 Figura 1 3: Diagrama de Funcionamento do Laço for 36 Figura 1 4: Diagrama

Leia mais

Filas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013

Filas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013 Filas de prioridade Marcelo K. Albertini de Dezembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover

Leia mais

1.1 o que é um algoritmo... 6

1.1 o que é um algoritmo... 6 sumário introdução 1 1 fundamentos 5 1.1 o que é um algoritmo... 6 1.1.1 algoritmos executados por um computador...7 1.1.2 comandos básicos executados por um computador...11 1.1.3 da necessidade do desenvolvimento

Leia mais

Filas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014

Filas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014 Filas de prioridade Marcelo K. Albertini de Novembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover

Leia mais

Funções de Dispersão Prontas

Funções de Dispersão Prontas Funções de Dispersão Prontas E laborar uma função de dispersão é, em boa proporção, uma arte. Assim é sempre melhor usar uma função de dispersão reconhecidamente boa (i.e., que tenha sido exaustivamente

Leia mais

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256 Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256 informações diferentes; Tipos Primitivos são implementados nas

Leia mais

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

Leia mais

Dicionários. TAD Orientado a conteúdo

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)

Leia mais

Árvores Binárias e AVL Felipe Barros Pontes Gustavo Márcio de Morais Cunha Márcio de Medeiros Ribeiro

Á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

Leia mais

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59 Sumário Capítulo 1 Introdução 29 1.1 O que é programação? 30 1.2 A anatomia de um computador 31 1.3 Traduzindo programas legíveis pelo homem em código de máquina 36 1.4 A linguagem de programação Java

Leia mais

Arvores binárias. Fonte: https://www.tumblr.com/ PF 14 pf/algoritmos/aulas/bint.html

Arvores binárias. Fonte: https://www.tumblr.com/ PF 14  pf/algoritmos/aulas/bint.html AULA 25 Arvores binárias Fonte: https://www.tumblr.com/ PF 14 http://www.ime.usp.br/ pf/algoritmos/aulas/bint.html Mais tabela de símbolos Uma tabela de símbolos (= symbol table = dictionary) é um conjunto

Leia mais

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; 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]

Leia mais

Á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

Á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

Leia mais

ALGORITMOS DE ORDENAÇÃO

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,

Leia mais

Universidade Federal da Paraíba Centro de Informática. Plano de Curso. Departamento de Informática. 1 Objetivos do Curso

Universidade Federal da Paraíba Centro de Informática. Plano de Curso. Departamento de Informática. 1 Objetivos do Curso Universidade Federal da Paraíba Centro de Informática Departamento de Informática Disciplina Ordenação e Recuperação de Dados Turma 01 Horário T16002, I16002 Sala T07 Nº de Créditos 4 Carga Horária 60

Leia mais

Árvores de Pesquisa (Parte II)

Árvores de Pesquisa (Parte II) 2013-02 Aula 21 Adaptado por Reinaldo Fortes para o curso de 2013-02 Arquivo original: 22._arvores_(parte_2) Árvores de Pesquisa (Parte II) Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 24

Leia mais

Respostas e Sugestões para os

Respostas e Sugestões para os Respostas e Sugestões para os Exercícios de Revisão Capítulo 1 Organização de Memória Capítulo 1 1. Consulte a Seção 1.1.1. 2. Consulte a Seção 1.1.1.. Consulte a Seção 1.1.1. 4. Consulte a Seção 1.1.1.

Leia mais

Busca em Memória Primária Estrutura de Dados II

Busca em Memória Primária Estrutura de Dados II Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Busca em Memória Primária Estrutura de Dados II Estrutura de Dados II COM10078 2017-I Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br

Leia mais

Busca em Memória Primária Estrutura de Dados II

Busca em Memória Primária Estrutura de Dados II Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Busca em Memória Primária Estrutura de Dados II COM10078 Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br

Leia mais

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM GESTÃO DA INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GGI026 PERÍODO:

Leia mais

Métodos de Ordenação Parte I

Métodos de Ordenação Parte I Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar

Leia mais

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM GESTÃO DA INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GGI026 PERÍODO:

Leia mais

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

Leia mais

Análise de Algoritmos Algoritmos de Ordenação

Análise de Algoritmos Algoritmos de Ordenação Análise de Algoritmos Algoritmos de Ordenação Nelson Cruz Sampaio Neto nelsonneto@ufpa.br Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação 5 de abril de 2016

Leia mais

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

Edital de Seleção 016/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 016/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

Leia mais

Estrutura de Dados e Arquivos Ementa Objetivo Geral Conteúdo Avaliação

Estrutura de Dados e Arquivos Ementa Objetivo Geral Conteúdo Avaliação Faculdades NDA Plano de Ensino Curso:SISTEMAS DE INFORMAÇÃO Disciplina: Estrutura de Dados e Arquivos Carga horária semanal: 4 Ano: 2006 Turma: MD3 e ME3 Carga horária total: 80 Corpo docente: Ly Freitas

Leia mais

Algoritmos de ordenação: Bucketsort, Radixsort e Seleção

Algoritmos de ordenação: Bucketsort, Radixsort e Seleção CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Algoritmos de ordenação: Bucketsort, Radixsort e Seleção Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/

Leia mais

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

Leia mais

viii Tabela de Conteúdo

viii Tabela de Conteúdo Conteúdo Completo Conteúdo Resumido... v Conteúdo Completo...vii Lista de Figuras... xxiii Lista de Tabelas...xxvii Lista de Algoritmos... xxix Prefácio... 31 Ao Leitor 31 O Desafio de Ensinar e Aprender

Leia mais

Universidade Federal da Paraíba Centro de Informática. Plano de Curso. Departamento de Informática. 1 Objetivos do Curso

Universidade Federal da Paraíba Centro de Informática. Plano de Curso. Departamento de Informática. 1 Objetivos do Curso Universidade Federal da Paraíba Centro de Informática Departamento de Informática Disciplina Ordenação e Recuperação de Dados Turma 01 Horário T08002, I08002 Sala CI 307 Nº de Créditos 4 Carga Horária

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação Ordenação é uma das operações mais usuais em listas lineares Consequentemente, uma implementação ineficiente pode afetar diretamente o desempenho geral da aplicação! Por ser um problema bem estudado, existem

Leia mais

QUESTÕES DE PROVAS ANTIGAS

QUESTÕES DE PROVAS ANTIGAS CT-24 QUESTÕES DE PROVAS ANTIGAS ) Preencha a tabela abaixo com Î ou Ï: ω(log n) Θ(n) O(n log n) Ω(n 2 ) o(n ) 6n + 2n 2 + 2.log n + 4n + n.log n + log n 2) Dada a árvore binária abaixo, escreva os seus

Leia mais

8 Dispersão. Capítulo. em Memória. 8.1 Conceitos, Terminologia e Aplicações 8.1

8 Dispersão. Capítulo. em Memória. 8.1 Conceitos, Terminologia e Aplicações 8.1 Capítulo 8 Dispersão em Memória Principal Este capítulo lida com uma das mais importantes técnicas de implementação de tabelas de busca. Essa técnica é denominada dispersão (hashing, em inglês) e consiste

Leia mais

Árvores B. Árvores B Parte II. Características. Características. Construção Bottom-Up. Leandro C. Cintra Maria Cristina F. de Oliveira.

Árvores B. Árvores B Parte II. Características. Características. Construção Bottom-Up. Leandro C. Cintra Maria Cristina F. de Oliveira. Algoritmos e Estruturas de Dados II Prof. Ricardo J. G. B. Campello Árvores B Parte II Construção Bottom-Up Adaptado dos Originais de: Leandro C. Cintra Maria Cristina F. de Oliveira Árvores B Características

Leia mais

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

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório UFU/FACOM/BCC GBC053 - Gerenciamento de Banco de Dados - 2018/2 Trabalho de Implementação Prof. Ilmério Reis da Silva O trabalho semestral da disciplina em epígrafe tem como objetivo a implementação de

Leia mais

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

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

Leia mais

Análise de Algoritmos

Análise de Algoritmos Algoritmos p. 1/25 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/25 Ordenação em tempo linear CLRS cap 8 Algoritmos

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Arquivos Copyright 2014 IFRN Agenda Conceito Tipos de arquivos Texto Binário Stream Principais funções Exemplos

Leia mais

Algoritmos e Estruturas de Dados II IEC013

Algoritmos e Estruturas de Dados II IEC013 Algoritmos e Estruturas de Dados II IEC013 Linguagem C - Arquivos - Prof. César Melo cavmelo@dcc.ufam.edu.br Slides preparados pelo Prof. Leandro Galvão galvao@dcc.ufam.edu.br Conceitos iniciais Um arquivo

Leia mais

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 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)

Leia mais

Ordenação: Heapsort. Algoritmos e Estruturas de Dados II

Ordenação: Heapsort. Algoritmos e Estruturas de Dados II Ordenação: Heapsort Algoritmos e Estruturas de Dados II Introdução Possui o mesmo princípio de funcionamento da ordenação por seleção Selecione o menor item do vetor Troque-o pelo item da primeira posição

Leia mais

Universidade do Estado da Bahia UNEB Departamento de Ciências Exatas e da Terra - Campus I

Universidade do Estado da Bahia UNEB Departamento de Ciências Exatas e da Terra - Campus I CÁLCULO II/MAT005 4 - - 4 60 Processos gerais de integração. Integral definida e aplicações. Estudo das funções reais de várias variáveis: limites, continuidade, derivadas parciais e derivada total. Aplicações.

Leia mais

Métodos de Busca Parte 2

Métodos de Busca Parte 2 Métodos de Busca Parte 2 SCC-214 Projeto de Algoritmos Prof. Thiago A. S. Pardo Baseado no material do Prof. Rudinei Goularte 1 Introdução Acesso seqüencial = O(n) Quanto mais as estruturas (tabelas, arquivos,

Leia mais

sumário 1 bases numéricas 1 2 sistemas de numeração em computação introdução representação de números... 3

sumário 1 bases numéricas 1 2 sistemas de numeração em computação introdução representação de números... 3 sumário 1 bases numéricas 1 1.1 introdução... 2 1.2 representação de números... 3 1.3 transformação entre bases... 4 1.3.1 método polinomial...4 1.3.2 método de subtrações...5 1.3.3 método das divisões...6

Leia mais

1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO Bases de Numeração Representação de Números em Base 2 5

1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO Bases de Numeração Representação de Números em Base 2 5 PREFÁCIO 1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO 1 1.1 Bases de Numeração 3 1.1.1 Representação de Números Inteiros em Base b 3 1.1.2 Representação de Números em Base 2 5 1.1.3 Representação de Números Fraccionários

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA. Prof. Dr. Daniel Caetano

ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA. Prof. Dr. Daniel Caetano ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA Prof. Dr. Daniel Caetano 2014-1 Objetivos Compreender o que é a memória e sua hierarquia Compreender os diferentes tipos de memória Entender como é feito o acesso à

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA. Prof. Dr. Daniel Caetano

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA. Prof. Dr. Daniel Caetano ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA Prof. Dr. Daniel Caetano 22-2 Objetivos Compreender o que é a memória e sua hierarquia Compreender os diferentes tipos de memória Entender como é feito

Leia mais

Árvores de Pesquisa (Parte II)

Árvores de Pesquisa (Parte II) 2014-01 Aula 20 Adaptado por Reinaldo Fortes para o curso de 2014-01 Arquivo original: 22._arvores_(parte_2) Árvores de Pesquisa (Parte II) Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Algoritmos

Leia mais

Estrutura de Dados II

Estrutura de Dados II Estrutura de Dados II Introdução à Estrutura de Dados www.aeciocosta.com.br aecio.costa@faculdadeguararapes.edu.br Estrutura de Dados Estrutura de dados é um modo particular de armazenamento e organização

Leia mais

SSC0112 Organização de Computadores Digitais I

SSC0112 Organização de Computadores Digitais I SSC0112 Organização de Computadores Digitais I 17ª Aula Hierarquia de memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Memória Memória Todo componente capaz de armazenar bits de informação Características

Leia mais

Faculdade de Computação

Faculdade de Computação Faculdade de Computação Programação Procedimental 13 Laboratório de Programação - Algoritmos Prof. Cláudio C. Rodrigues Prof. Fabíola Gonçalves I. Introdução a Arquivos A motivação para utilizar arquivos

Leia mais

SCC0601 Introdução à Ciência da Computação II. Prof. Lucas Antiqueira

SCC0601 Introdução à Ciência da Computação II. Prof. Lucas Antiqueira SCC0601 Introdução à Ciência da Computação II Prof. Lucas Antiqueira Acesso sequencial = O(n) Busca binária = O(log 2 n) Árvores binárias de busca = O(log 2 n) (melhor caso) Acesso em tempo constante Por

Leia mais

Ordenação: HeapSort. Prof. Túlio Toffolo BCC202 Aula 17 Algoritmos e Estruturas de Dados I

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

Leia mais

Bubble Sort. Tempo total O(n 2 )

Bubble Sort. Tempo total O(n 2 ) Bubble Sort Considere uma seqüência de n elementos que se deseja ordenar. O método da bolha resolve esse problema através de várias passagens sobre a seqüência Não é um algoritmo eficiente, é estudado

Leia mais

Extra- Algoritmos de Ordenação

Extra- Algoritmos de Ordenação Extra- Algoritmos de Ordenação 1 Introdução Ordenar: processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. A ordenação visa facilitar a recuperação posterior de itens do

Leia mais

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Introdução. Leandro C. Cintra Maria Cristina F. de Oliveira. Solução?

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Introdução. Leandro C. Cintra Maria Cristina F. de Oliveira. Solução? Algoritmos e Estruturas de Dados II Prof. Ricardo J. G. B. Campello Árvores B Parte I Introdução Adaptado e Estendido dos Originais de: Leandro C. Cintra Maria Cristina F. de Oliveira A Invenção da B-Tree

Leia mais

PROGRAMA DE DISCIPLINA

PROGRAMA DE DISCIPLINA ASSOCIAÇÃO EDUCACIONAL DOM BOSCO Fundada em 21 de dezembro de 1964 MANTENEDORA DAS FACULDADES DE CIÊNCIAS ECONÔMICAS, ADMINISTRATIVAS, COMPUTAÇÃO, FILOSOFIA, CIÊNCIAS E LETRAS DOM BOSCO, FACULDADE DE ENGENHARIA

Leia mais

Estruturas de Dados Algoritmos de Ordenação

Estruturas de Dados Algoritmos de Ordenação Estruturas de Dados Prof. Eduardo Alchieri (introdução) Considere uma sequência arbitrária S = {s1, s2, s3,...sn} composta por n 0 elementos retirados do conjunto universo U O objetivo da ordenação é arrumar

Leia mais

Estruturas de Dados 2

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

Leia mais

Tópicos Avançados em Algoritmos

Tópicos Avançados em Algoritmos Tópicos Avançados em Algoritmos Armando Matos 2008 Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2 Tópicos Avançados de Algoritmos Armando B. Matos DCC-FC-UP 2009

Leia mais

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso: Compressão de Textos 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 DECOM O volume

Leia mais

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

Métodos de Ordenação: Selection, Insertion, Bubble, Merge (Sort) Métodos de Ordenação: Selection, Insertion, Bubble, Merge (Sort) Hebert Coelho e Nádia Félix Ordenação É a operação de rearranjar os dados em uma determinada ordem. Problema da ordenação - Definição formal

Leia mais

SSC512 Elementos de Lógica Digital. Memórias. GE4 Bio

SSC512 Elementos de Lógica Digital. Memórias. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Elementos de Memórias GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos Prof.Dr. Danilo

Leia mais

Conceitos Básicos de Programação

Conceitos Básicos de Programação BCC 201 - Introdução à Programação Conceitos Básicos de Programação Guillermo Cámara-Chávez UFOP 1/53 Conceitos básicos I Variável 2/53 Conceitos básicos II Posição de memoria, identificada através de

Leia mais

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 Memória Secundária e Ordenação externa Algoritmos e Estruturas de Dados III Diego de Moura Duarte diegomd@dcc.ufmg.br 5 de Junho de 008 1 Memória secundária 1.1 Hierarquia de memórias Para entendermos

Leia mais

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

Leia mais

Estruturas de Dados Tabelas de Espalhamento

Estruturas de Dados Tabelas de Espalhamento Estruturas de Dados Tabelas de Espalhamento Prof. Eduardo Alchieri (introdução) Uma estrutura como, as árvores binárias de busca, que trabalhe na ordem de log n é muito eficiente, mas em algumas situações

Leia mais

INE5408 Estruturas de Dados. Gerência de Arquivos

INE5408 Estruturas de Dados. Gerência de Arquivos INE5408 Estruturas de Dados Gerência de Arquivos Introdução Arquivo: conjunto de dados em um dispositivo de armazenamento secundário (externo); tipicamente: disco, disquete, fita, CD-ROM, MO-Disc, Zip,

Leia mais

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 Algoritmos de Ordenação em Tempo Linear IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/38 Algoritmos de Ordenação em Tempo Linear Limite Assintótico

Leia mais

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GBC052 PERÍODO:

Leia mais

Árvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão

Árvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão Árvore B Profa. Dra. Cristina Dutra de Aguiar Ciferri Método genérico para o armazenamento e a recuperação de dados voltado para arquivos volumosos proporciona rápido acesso aos dados possui custo mínimo

Leia mais

MATRIZ DE REFERÊNCIA-Ensino Médio Componente Curricular: Matemática

MATRIZ DE REFERÊNCIA-Ensino Médio Componente Curricular: Matemática MATRIZ DE REFERÊNCIA-Ensino Médio Componente Curricular: Matemática Conteúdos I - Conjuntos:. Representação e relação de pertinência;. Tipos de conjuntos;. Subconjuntos;. Inclusão;. Operações com conjuntos;.

Leia mais

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Á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

Leia mais

Organização de Arquivos

Organização de Arquivos Construção de Sistemas de Gerência de Bancos de Dados DI PUC-Rio Prof: Sérgio Lifschitz Organização de Arquivos Organização de Arquivos Tipos básicos de arquivos: heap files (entry sequenced files) sorted

Leia mais

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

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

Leia mais

Métodos de Busca. Parte 2. ICC2 Prof. Thiago A. S. Pardo. Baseado no material do Prof. Rudinei Goularte

Métodos de Busca. Parte 2. ICC2 Prof. Thiago A. S. Pardo. Baseado no material do Prof. Rudinei Goularte Métodos de Busca Parte 2 ICC2 Prof. Thiago A. S. Pardo Baseado no material do Prof. Rudinei Goularte Introdução Acesso seqüencial = O(n) Quanto mais as estruturas (tabelas, arquivos, etc.) crescem, mais

Leia mais

Organização de Arquivos

Organização de Arquivos Organização de Arquivos SCC-503 Algoritmos e Estruturas de Dados II Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira 1 Organização de arquivos para desempenho Organização de arquivos visando desempenho

Leia mais

Organização de Arquivos

Organização de Arquivos Organização de Arquivos SCC-503 Algoritmos e Estruturas de Dados II Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira 1 Organização de arquivos para desempenho Organização de arquivos visando desempenho

Leia mais

Introdução Métodos de Busca Parte 2 - Hashing

Introdução Métodos de Busca Parte 2 - Hashing Introdução Métodos de Busca Parte - Hashing ICC Acesso seqüencial = O(n) Quanto mais as estruturas (tabelas, arquivos, etc.) crescem, mais acessos há Quando armazenamento é em disco, reduzir acessos é

Leia mais

Sumário. Introdução 1

Sumário. Introdução 1 Sumário Introdução 1 Capítulo 1. Rápida Introdução à Programação Procedural 7 Criando e Executando Programas Python 7 O Lindo Coração do Python 12 Parte #1: Tipos de Dados 12 Parte #2: Referência de Objeto

Leia mais

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

Classificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos Classificação e Pesquisa de Dados Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos UFRGS INF1124 Arquivo indexado - AI Indicação de uso Baixa freqüência de acessos seqüenciais

Leia mais

Métodos de Ordenação Parte 3

Métodos de Ordenação Parte 3 Estrutura de Dados II Métodos de Ordenação Parte 3 Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais do Prof. Robson Lins Classificação em Memória Primária

Leia mais

SCC-501 Introdução à Ciência de Computação II

SCC-501 Introdução à Ciência de Computação II SCC-501 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis 2011 João

Leia mais

Strings (Casamento de padrões) Estrutura de Dados II Jairo Francisco de Souza

Strings (Casamento de padrões) Estrutura de Dados II Jairo Francisco de Souza Strings (Casamento de padrões) Estrutura de Dados II Jairo Francisco de Souza Strings Tipo de dado importante para diversas aplicações. Abordaremos algumas questões relacionadas com Strings nos seguintes

Leia mais

I LINGUAGENS E PROCESSADORES: INTRODUÇÃO 1

I LINGUAGENS E PROCESSADORES: INTRODUÇÃO 1 PREÂMBULO PREFÂCIO xiii xv I LINGUAGENS E PROCESSADORES: INTRODUÇÃO 1 1 1.1 1.1.1 1.1.2 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 2 2.1 2.2 2.2.1 2.2.2 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.4 2.4.1 2.4.2

Leia mais

Arquivos. Fundamentos de Arquivos. Discos X Memória Principal. Memória Secundária x Principal. Informação mantida em memória secundária (externa)

Arquivos. Fundamentos de Arquivos. Discos X Memória Principal. Memória Secundária x Principal. Informação mantida em memória secundária (externa) Algoritmos e Estruturas de Dados II Prof. Ricardo J. G. B. Campello Fundamentos de Arquivos Adaptado dos Originais de: Leandro C. Cintra Maria Cristina F. de Oliveira Arquivos Informação mantida em memória

Leia mais

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

Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia Introdução à Análise de Algoritmos Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia Aula de hoje Nesta aula veremos: Sobre a disciplina Exemplo: ordenação Sobre a disciplina

Leia mais

Ordenação de Dados. Ordenação de Dados

Ordenação de Dados. Ordenação de Dados UFSC-CTC-INE INE38 - Estruturas de Dados Ordenação de Dados Prof. Ronaldo S. Mello 00/ Ordenação de Dados Processo bastante utilizado na computação de uma estrutura de dados Dados ordenados garantem uma

Leia mais

ESTRUTURA DE DADOS FILAS DINÂMICAS

ESTRUTURA DE DADOS FILAS DINÂMICAS ESTRUTURA DE DADOS FILAS DINÂMICAS Prof. Dr. Daniel Caetano 202-2 Objetivos Compreender o conceito de encadeada Usar s dinâmicas para aplicações Conhecer as vantagens e desvantagens das s encadeadas Atividade

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Conjunto de Instruções Prof. Sílvio Fernandes

Leia mais