Algoritmos Avançado: Programação Competitiva e Otimização
- Nível: Avançado
- Módulos: 6
- Aulas: 35
- Tempo de leitura: 1h 53min
- Tecnologias: Algoritmo
- Preço: Gratuito
Código do curso: github.com/johnpires/algoritmos-avancado-programacao-competitiva-otimizacao
Domine os algoritmos mais avançados da computação e eleve sua capacidade de resolver problemas complexos ao nível de programação competitiva. Este curso abrange estruturas de dados sofisticadas, grafos, programação dinâmica e técnicas de otimização utilizadas em grandes empresas de tecnologia.
Você aprenderá a analisar e otimizar algoritmos com precisão, implementando soluções eficientes para problemas de alta complexidade. Exploraremos algoritmos de grafos avançados como Dijkstra, Bellman-Ford, Floyd-Warshall, além de árvores de segmento, Fenwick Trees e algoritmos de fluxo máximo.
Ao final do curso, você estará preparado para desafios de programação competitiva, entrevistas técnicas de alto nível e para projetar sistemas escaláveis que lidam com grandes volumes de dados.
Conteúdo do curso
Módulo 1: Análise Avançada de Complexidade e Otimização
- Notação Big-O Avançada e Análise Amortizada (8 min)
- Complexidade de Espaço e Trade-offs Tempo-Espaço (3 min)
- Algoritmos de Aproximação e Heurísticas (2 min)
- Análise de Casos Médios e Complexidade Probabilística (3 min)
- Técnicas de Otimização: Cache, SIMD e Branch Prediction (2 min)
- Benchmarking e Profiling de Algoritmos em TypeScript (3 min)
Módulo 2: Estruturas de Dados Avançadas
- Árvores de Segmento (Segment Trees) (4 min)
- Fenwick Trees (Binary Indexed Trees) (3 min)
- Tries e Estruturas de Prefixo (4 min)
- Union-Find (Disjoint Set Union — DSU) (4 min)
- Árvores Balanceadas e Treaps (2 min)
- Estruturas de Dados Persistentes (3 min)
Módulo 3: Algoritmos de Grafos Avançados
- Dijkstra Otimizado com Heap Binário (3 min)
- Bellman-Ford e Floyd-Warshall (3 min)
- Árvores Geradoras Mínimas: Kruskal e Prim (3 min)
- Fluxo Máximo: Ford-Fulkerson e Edmonds-Karp (3 min)
- Componentes Fortemente Conexos: Kosaraju e Tarjan (3 min)
- Algoritmo A* e Heurísticas de Busca (3 min)
Módulo 4: Programação Dinâmica Avançada
- Programação Dinâmica com Divisão e Conquista (2 min)
- Programação Dinâmica com Bitmask (3 min)
- Programação Dinâmica em Árvores (Tree DP) (5 min)
- Programação Dinâmica em Intervalos (2 min)
- Programação Dinâmica: Contagem e Combinatória (3 min)
- Longest Increasing Subsequence e Variações (3 min)
Módulo 5: Algoritmos de String e Processamento de Texto
- Algoritmo KMP (Knuth-Morris-Pratt) (4 min)
- Rabin-Karp e Hashing de Strings (2 min)
- Algoritmo de Aho-Corasick (2 min)
- Suffix Arrays e LCP (2 min)
- Distância de Edição e Processamento de Texto (2 min)
Módulo 6: Projeto Final: Sistema de Roteamento Inteligente
- Apresentação do Projeto: Sistema de Roteamento GPS (3 min)
- Modelagem do Grafo e Estruturas de Dados (3 min)
- Implementação do A* com Heurística Geográfica (3 min)
- Cache LRU e Otimizações de Performance (3 min)
- Rota com Múltiplos Waypoints e Otimização (8 min)
- Integração Final, Testes e Projeto Git-Ready (4 min)