Acesso ao Material: Download
- Introdução
- Tipos de Problemas
- Estruturas de Dados
- Problemas Difíceis
- NP-Complete
- Paralelismo
- Exemplo de Algoritmo
- O Algoritmo Insertion Sort
- Analisando Algoritmos
- Análise do Insertion Sort
- Análise de Pior Caso e Caso Médio
- Ordem de Crescimento
- Projetando Algoritmos
- Dividir e Conquistar
- O Algoritmo Merge Sort
- Analisando Algoritmos de Divisão e Conquista
- Análise do Merge Sort
- Árvore de Recursão
- Crescimento de Funções
- Notação Assintótica
- Notação Assintótica, Funções e Tempos de Execução
- Notação Θ
- Ordens Comuns de Funções
- Classificação de Algoritmos
- Algoritmo de Euclides
- Calculando Números de Fibonacci
- Design de Algoritmos
- Expressando Algoritmos
- O Algoritmo Heapsort
- O Algoritmo Quicksort
- O Algoritmo Bubble Sort
- O Algoritmo Selection Sort
- Classificação dos Algoritmos de Ordenação
- Algoritmos In-Place
- Estabilidade
- Algoritmos de Busca
- Linear Search
- Binary Search
- Sieve of Eratosthenes
- Fatores Primos de um Número
- Breadth-First Search (BFS)
- Algoritmo de Huffman
- Torre de Hanói
- Paradoxo do Aniversário
- O Algoritmo Knuth–Morris–Pratt
- Lista de Algoritmos para Estudos
- Estruturas de Dados Lineares
- Estruturas de Dados Não Lineares
- Uso das Estruturas de Dados
- Implementação das Estruturas de Dados
- Exemplos de Estruturas de Dados
- Arrays
- Linked Lists
- Stacks
- Queues
- Hash Table
- Grafos
- As Sete Pontes de Königsberg
- Trees
- Binary Trees
- Binary Search Trees
- AVL Trees
- Red-black Trees
- Tries
- Considerações Finais