O livro Algorítimos: Teoria e Prática é a melhor fonte de estudos de algoritmos em nossa linguagem (minhã opinião…) pois aborda o assunto para atender do mais básico usuário ao mais avançado, aprofundando em algoritmos mais complexos.
- A função dos algoritmos na computação
- Algoritmos
- Algoritmos como uma tecnologia
- Conceitos Básicos
- Ordenar por inserção
- Análise de Algoritmos
- Projeto de Algoritmos
- Crescimento de Funções
- Notação Assintótica
- Notações padrões e funções comuns
- Recorrências
- O método de substituição
- O método de árvore de recursã0
- O método mestre
- Prova do teorema mestre
- Analise probabilística e algoritmos aleatórios
- O problema da contratação
- Indicadores de variáveis aleatórias
- Algoritmos aleatórios
- Analise probabilística e usos adicionais de indicadores de variáveis aleatórias
- Heapsort
- Heaps
- Manutenção da propriedade de heap
- A construção de um heap
- O algoritmo heapsort
- Filas de prioridades
- Quicksort
- Descrição do quicksort
- O desempenho do quicksort
- Uma versão aleatória de quicksort
- Analise de quicksort
- Ordenação de tempo linear
- Limites inferiores para ordenação
- Ordenação para contagem
- Radix sort
- Bucket sort
- Medianas e estatísticas de ordem
- Mínimo e Máximo
- Seleção em tempo esperado linear
- Seleção em tempo linear no pior caso
- Estrutura de dados elementares
- Pilhas e Filas
- Listas ligadas
- Implementação de ponteiros e objetos
- Representação de árvores enraizadas
- Tabela hash
- Tabelas de endereço direto
- Tabelas hash
- Funções hash
- Endereçamento aberto
- Hash perfeito
- Árvores de pesquisa binária
- O que é uma árvore de pesquisa binária?
- Consultas em uma árvore de pesquisa binária
- Inserção e eliminação
- Árvores de pesquisa binária construídas aleatoriamente
- Árvores vermelho-preto
- Propriedades de árvores vermelho-preto
- Rotações
- Exclusões
- Eliminação
- Ampliando estruturas de dados
- Estatísticas de ordens dinâmicas
- Como ampliar uma estrutura de dados
- O método mestre
- Árvores de intervalo
- Programação Dinâmica
- Programação em linha de montagem
- Multiplicação de cadeia de matrizes
- Elementos de programação dinâmica
- Subsequencia comum mais longa
- Árvores de pesquisa binária ótimas
- Algoritmos gulosos
- Um problema de seleção de atividade
- Elementos da estratégia gulosa
- Códigos de Huffman
- Fundamentos teóricos de métodos gulosos
- Um problema de programação de tarefas
- Analise Amortizada
- A análise agregada
- O método de contabilidade
- O método potencial
- Tabelas dinâmicas
- Árvores B
- Definição de valores B
- Operações básicas sobre árvore B
- Eliminação de uam chave de uma árvore B
- Heaps binomiais
- Árvores binomiais e heaps binomiais
- Operações sobre heaps binomiais
- Heaps de Fibonacci
- Estrutura de heaps de fibonacci
- Operações de heaps intercaláveis
- Como decrementar uma chave e eliminar um nó
- Como limitar um grau máximo
- Estruturas de dados para conjuntos disjuntos
- Operações de conjuntos disjuntos
- Representação de conjuntos disjuntos por listas ligadas
- Floresta de conjuntos disjuntos
- Análise da união por ordenação com compreensão de caminhos
- Algoritmos elementares de grafos
- Representação de grafos
- Busca em largura
- Busca em profundidade
- Ordenação topológica
- Componentes fortemente conectados
- Árvores espalhadas mínimas
- Como aumentar uma árvore espalhada mínima
- Os algoritmos de Kruskal e Prim
- Caminhos mais curtos de única origem
- O algoritmo de Bellman-Ford
- Caminhos mais curtos de uma única origem em grafos acíclicos orientados
- Algoritmo Dijkstra
- Restrições de diferenças e caminhos mais curtos
- Provas de propriedades de caminhos mais curtos
- Caminhos mais curtos de todos os pares
- Caminhos mais curtos e multiplicação de matrizes
- O caminho de Floyd-Warshall
- O método mestre
- Algoritmo de Johnson para grafos esparsos
- Fluxo máximo
- Fluxo em redes
- O método de Ford-Fulkerson
- Emparelhamento bipartido máximo
- Algoritmo de push-relabel
- O algoritmo de relabel-to-front
- Redes de Ordenação
- Redes de comparação
- O princípio zero um
- Uma rede de ordenação bitônica
- Uma rede de intercalação
- Uma rede de ordenação
- Operação de matrizes
- Propriedades de matrizes
- Algoritmo de Strassen para multiplicação de matrizes
- Resoluções de sistemas de equações lineares
- Inversão de matrizes
- Matrizes simétricas definidas como positivas e aproximação de mínimos quadrados
- Programação linear
- Formas padrão e relaxada
- Formulação de problemas para programas lineares
- O algoritmo simplex
- Dualidade
- A solução básica inicial possível
- Polinômios e a FFT
- Representação de dados polinômios
- A DFT e a FFT
- Implementações eficientes de FFT
- Algoritmos de teorias dos números
- Noções de teoria elementar dos números
- Máximo divisor comum
- Aritmética modular
- Resoluções de equações lineares modulares
- O teorema chinês do resto
- Potência de um elemento
- O sistema de criptografia de chave pública RSA
- Como testar caráter primo
- Fatoração de inteiros
- Emparelhamento de cadeias
- O algoritmo simples de emparelhamento de cadeias
- O algoritmo de Rabin-Karp
- Emparelhamento de cadeias com autômatos finitos
- O algoritmo de Knutt-Morris-Pratt
- Geometria Computacional
- Propriedades de segmentos de linha
- Como determinar se elementos quaisquer se cruzam
- Como encontrar a envoltória convexa
- Localização do par de pontos mais próximos
- Problemas NP-Completos
- Tempo polinomial
- Verificação de tempo polinomial
- Caráter NP-Completo de redutibilidade
- Provas do caráter NP-Completo
- Problemas NP-Completos
- Algoritmos de aproximação
- O problema de cobertura de vértices
- O problema do caixeiro-viajante
- O problema da cobertura de conjuntos
- Aleatoriedade e programação linear
- O problema de soma de subconjuntos
Artigos relacionados...
- Recuperação de Informação
- Atualize seu navegador… e de seus visitantes!
- Plugins Firefox para Desenvolvedores
- Validar extensão de arquivo – jQuery
- Serviços úteis na web – Desenvolvimento


