Destino Dev

Cursos

Algoritmos Avançado: Programação Competitiva e Otimização

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

  1. Notação Big-O Avançada e Análise Amortizada (8 min)
  2. Complexidade de Espaço e Trade-offs Tempo-Espaço (3 min)
  3. Algoritmos de Aproximação e Heurísticas (2 min)
  4. Análise de Casos Médios e Complexidade Probabilística (3 min)
  5. Técnicas de Otimização: Cache, SIMD e Branch Prediction (2 min)
  6. Benchmarking e Profiling de Algoritmos em TypeScript (3 min)

Módulo 2: Estruturas de Dados Avançadas

  1. Árvores de Segmento (Segment Trees) (4 min)
  2. Fenwick Trees (Binary Indexed Trees) (3 min)
  3. Tries e Estruturas de Prefixo (4 min)
  4. Union-Find (Disjoint Set Union — DSU) (4 min)
  5. Árvores Balanceadas e Treaps (2 min)
  6. Estruturas de Dados Persistentes (3 min)

Módulo 3: Algoritmos de Grafos Avançados

  1. Dijkstra Otimizado com Heap Binário (3 min)
  2. Bellman-Ford e Floyd-Warshall (3 min)
  3. Árvores Geradoras Mínimas: Kruskal e Prim (3 min)
  4. Fluxo Máximo: Ford-Fulkerson e Edmonds-Karp (3 min)
  5. Componentes Fortemente Conexos: Kosaraju e Tarjan (3 min)
  6. Algoritmo A* e Heurísticas de Busca (3 min)

Módulo 4: Programação Dinâmica Avançada

  1. Programação Dinâmica com Divisão e Conquista (2 min)
  2. Programação Dinâmica com Bitmask (3 min)
  3. Programação Dinâmica em Árvores (Tree DP) (5 min)
  4. Programação Dinâmica em Intervalos (2 min)
  5. Programação Dinâmica: Contagem e Combinatória (3 min)
  6. Longest Increasing Subsequence e Variações (3 min)

Módulo 5: Algoritmos de String e Processamento de Texto

  1. Algoritmo KMP (Knuth-Morris-Pratt) (4 min)
  2. Rabin-Karp e Hashing de Strings (2 min)
  3. Algoritmo de Aho-Corasick (2 min)
  4. Suffix Arrays e LCP (2 min)
  5. Distância de Edição e Processamento de Texto (2 min)

Módulo 6: Projeto Final: Sistema de Roteamento Inteligente

  1. Apresentação do Projeto: Sistema de Roteamento GPS (3 min)
  2. Modelagem do Grafo e Estruturas de Dados (3 min)
  3. Implementação do A* com Heurística Geográfica (3 min)
  4. Cache LRU e Otimizações de Performance (3 min)
  5. Rota com Múltiplos Waypoints e Otimização (8 min)
  6. Integração Final, Testes e Projeto Git-Ready (4 min)