Projeto de Algoritmos com ImplementaÁűes em Java e C++

Um projeto de Nivio Ziviani, Ph.D. Professor Emťrito do Departamento de CiÍncia da ComputaÁ„o Universidade Federal de Minas Gerais
Consultoria em Java e C++ de Fabiano Cupertino Botelho, M.Sc.

Editora: Pioneira Thomson


¬Ľ cap√≠tulos


Capítulos do Livro

Capítulo 1: Introdução

  1. Algoritmos, Estrutura de Dados e Programas
  2. Tipos de Dados e Tipos Abstratos de Dados
  3. Medida do Tempo de Execução de um Programa
    1. Comportamento Assint√≥tico de Fun√ß√Ķes
    2. Classes de Comportamento Assintótico
  4. Técnicas de Análise de Algoritmos
  5. Java
    1. Programação Orientada a Objetos
    2. Principais Componentes de um Programa em Java
    3. Diferenças entre Java e C++
  6. Notas Bibliogr√°ficas
  7. Exercícios

Capítulo 2: Paradigmas de Projeto de Algoritmos

  1. Indução
  2. Recursividade
    1. Como Implementar Recursividade
    2. Quando N√£o Usar Recursividade
  3. Algoritmos Tentativa e Erro
  4. Divis√£o e Conquista
  5. Balanceamento
  6. Programa√ß√£o Din√Ęmica
  7. Algoritmos Gulosos
  8. Algoritmos Aproximados
  9. Notas Bibliogr√°ficas
  10. Exercícios

Capítulo 3: Estruturas de Dados Básicas

  1. Listas Lineares
    1. Implementação de Listas por meio de Arranjos
    2. Implementação de Listas por meio de Ap Estruturas Auto-Referenciadas
  2. Pilhas
    1. Implementação de Pilhas por meio de Arranjos
    2. Implementação de Pilhas por meio de Ap Estruturas Auto-Referenciadas
  3. Filas
    1. Implementação de Filas por meio de Arranjos
    2. Implementação de Filas por meio de Ap Estruturas Auto-Referenciadas
  4. Notas Bibliogr√°ficas
  5. Exercícios

Capítulo 4: Ordenação

  1. Ordenação Interna
    1. Ordenação por Seleção
    2. Ordenação por Inserção
    3. Shellsort
    4. Quicksort
    5. Heapsort
    6. Comparação entre os Métodos
    7. Ordenação Parcial
  2. Ordenação Externa
    1. Intercalação Balanceada de Vários Caminhos
    2. Implementação por meio de Seleção por Substituição
    3. Considera√ß√Ķes Pr√°ticas
    4. Intercalação Polifásica
    5. Quicksort Externo
  3. Notas Bibliogr√°ficas
  4. Exercícios

Capítulo 5: Pesquisa em Memória Primária

  1. Pesquisa Sequencial
  2. Pesquisa Bin√°ria
  3. √Ārvores de Pesquisa
    1. √Ārvores Bin√°rias de Pesquisa sem Balanceamento
    2. √Ārvores Bin√°rias de Pesquisa com Balanceamento
  4. Pesquisa Digital
    1. Trie
    2. Patricia
  5. Transformação de Chave (Hashing)
    1. Fun√ß√Ķes de Transforma√ß√£o
    2. Listas Encadeadas
    3. Endereçamento Aberto
    4. Hashing Perfeito
  6. Notas Bibliogr√°ficas
  7. Exercícios

Capítulo 6: Pesquisa em Memória Secundária

  1. Modelo de Computação para Memória Secundária
    1. Memória Virtual
    2. Implementação de um Sistema de Paginação
  2. Acesso Sequencial Indexado
    1. Discos √ďticos de Apenas-Leitura
  3. √Ārvores de Pesquisa
    1. √Ārvores B
    2. √Ārvores B*
    3. Acesso Concorrente em √Ārvores B*
    4. Considera√ß√Ķes Pr√°ticas
  4. Notas Bibliogr√°ficas
  5. Exercícios

Capítulo 7: Algoritmos em Grafos

  1. Defini√ß√Ķes B√°sicas
  2. O Tipo Abstrato de Dados Grafo
    1. Implementação por meio de Matrizes de Adjacência
    2. Implementação por meio de Listas de Adjacência Usando ApoEstruturas Auto-Referenciadas
    3. Implementação por meio de Listas de Adjacência Usando Arranjos
    4. Programa Teste Para Tr√™s Implementa√ß√Ķes
  3. Busca em Profundidade
    1. Classificação de Arestas
    2. Teste para Verificar se Grafo é Acíclico
  4. Busca em Largura
  5. Ordenação Topológica
  6. Componentes Fortemente Conectados
  7. √Ārvore Geradora M√≠nima
    1. Algor√≠tmo Gen√©rico Para Obter a √Ārvore Geradora M√≠nima
    2. Algorítmo de Prim
    3. Algorítmo de Kruskal
  8. Caminhos Mais Curtos
  9. O Tipo Abstrato de Dados Hipergrafo
  10. Notas Bibliogr√°ficas
  11. Exercícios

Capítulo 8: Processamento de Cadeias de Caracteres

  1. Casamento de Cadeias
    1. Casamento Exato
    2. Casamento Aproximado
  2. Compreess√£o
    1. Por que Usar Compress√£o
    2. Compress√£o de Textos em Linguagem Natural
    3. Codificação de Huffman Usando Bytes
    4. Pesquisa em Texto Comprimido
  3. Notas Bibliogr√°ficas
  4. Exercícios

Capítulo 9:

  1. Problemas NP-Completo
    1. Algoritmos N√£o-Deterministas
    2. As Classes NP-Completo e NP-Difícil
  2. Heurísticas e Algoritmos Aproximados
    1. Algoritmos Exponenciais Usando Tentativa e Erro
    2. Heurísticas para Problemas NP-Completo
    3. Algoritmos Aproximados para Problemas NP-Completo
  3. Notas Bibliogr√°ficas
  4. Exercícios

Apendices:

  1. A Programas em C++ do Capítulo 1
  2. B Programas em C++ do Capítulo 2
  3. C Programas em C++ do Capítulo 3
  4. D Programas em C++ do Capítulo 4
  5. E Programas em C++ do Capítulo 5
  6. F Programas em C++ do Capítulo 6
  7. G Programas em C++ do Capítulo 7
  8. H Programas em C++ do Capítulo 8
  9. I Programas em C++ do Capítulo 9
  10. J Programas em C++ do Apêndice K
  11. K Respostas para Exercícios Selecionados
  12. Caracteres ASCII
  13. Referências Bibliográficas
  14. √ćndice Remissivo

Produzido por Tambor ComunicaÁ„o