• Prefácio
  • Sobre os autores
  • Agradecimentos
  • Guia ITA
  • I Introdução
  • 1 Preliminares
    • 1.1 Motivação
    • 1.2 Definições
      • 1.2.1 Computação
      • 1.2.2 Computador digital
      • 1.2.3 Dado digital
      • 1.2.4 Algoritmo
      • 1.2.5 Programa de computador
      • 1.2.6 Programação e linguagem de programação
      • 1.2.7 Compilador
      • 1.2.8 Interpretador
    • 1.3 Considerações finais
  • II Programação
  • 2 Introdução à programação
    • 2.1 Breve histórico das linguagens de programação
    • 2.2 Linguagem de alto nível
    • 2.3 Primeiro programa
    • 2.4 Sobre C++
    • 2.5 Programação imperativa
      • 2.5.1 Atribuição
      • 2.5.2 Entrada e saída
  • 3 Controle de fluxo
    • 3.1 Comandos condicionais
    • 3.2 Comandos de seleção
    • 3.3 Comandos de repetição
    • 3.4 Interrupções
    • 3.5 Tratamento de erros e exceções
  • 4 Entrada e saída
  • 5 Sub-rotinas e recursão
    • 5.1 Recursão
      • 5.1.1 Busca binária
  • 6 Tipos avançados
  • 7 Memória e ponteiros
  • 8 Complexidade computacional
    • 8.1 Importância da análise de complexidade
  • III Estruturas de dados
  • 9 Tipos abstratos de dados
  • 10 Sequências
    • 10.1 Listas
      • 10.1.1 Modelo abstrato e operações em listas
      • 10.1.2 Implementações de listas
      • 10.1.3 Contíguo dinâmico
    • 10.2 Iterador
    • 10.3 Colônia
  • 11 Adaptadores
  • 12 Árvores
    • 12.1 Árvores binárias
  • 13 Estruturas associativas
    • 13.1 Árvores Binárias de Busca
  • IV Algoritmos
  • 14 Particionamento
  • 15 Ordenação
    • 15.1 Bubble sort
    • 15.2 Shaker sort
    • 15.3 Selection sort
    • 15.4 Insertion sort
    • 15.5 Shell sort
    • 15.6 Quick sort
    • 15.7 Merge sort
  • 16 Busca
  • 17 Operações de conjuntos em listas ordenadas
  • 18 Operações de heap
  • 19 Operações numéricas

Computando

Sobre os autores

  • Filipe Verri
  • Lourenço Pereira Jr.