Seja bem-vindo ao curso de Algoritmos e Estruturas de Dados em C++! Aqui, vamos aprender o essencial dessa matéria para programação competitiva. Cada módulo conta com os seguintes componentes:
- Caderno: resumo da matéria
- Problemas de sala: problemas para aprendizado
- Problemas para casa: problemas para treino Além disso, temos aqui um dicionário de algoritmos, com o resumo dos principais algoritmos para se usar no dia da competição.
discord: https://discord.gg/arezHqz3 zap: https://chat.whatsapp.com/CrzfJf3o8CcEDsEN9R6Cqz
Autores:
- Henrique Eduardo: @henriqueedu2001
- Juliana Mitie: @julianamitie
"Buscar e aprender, na realidade, não são mais do que recordar" — Platão
Básico do mundo de programação competitiva: o que é? quais as principais competições. Como se preparar?
- Mundo da Programação Competitiva
- O que é Programação Competitiva?
- Principais Competições
- Maratona de Programação ICPC
- IEEExtreme
- Facebook Hackercup
- Google Code Jam
- Como se preparar?
- Linguagens de Programação
- IDE's e Editores
- Compilação e Execução
- Judges: Codeforces, Atcoder, Codechef etc.
- Contests
Como resolver problemas de programação; sintaxe da linguagem C++, principais tipos de variáveis e estruturas de dados
- Raciocínio Algorítmico
- Modelagem
- Conceito de Algoritmo
- Variáveis
- Conceito de variável
- Principais variáveis: int, float, double, char e string
- Estruturas
- Estruturas condicionais: if/else e switch
- Estruturas de Repetição: laços while, do while e for
- Funções e métodos
- Vetores e Matrizes
- Vetores
- Matrizes
- Atalhos
- Macros
- Typedef
- Template
Como comparar eficiência de algoritmos; notação Big O; algoritmos iterativos e recursivos
- Algoritmos
- Complexidade
- Como comparar eficiência
- Notação Grande O (Big O notation)
- Otimização
- Algoritmos Iterativos
- Algoritmos Recursivos
Algoritmos clássicos; busca linear, busca binária, ordenação, gulosos, backtracking e two pointers
- Algoritmos de Busca
- Busca Linear
- Busca Binária
- Algoritmos de Ordenação
- Bubble Sort
- Selection Sort
- Quick Sort
- Merge Sort
- Backtracking
- Algoritmos Gulosos
- Two Pointers
Estruturas de dados mais complexas; biblioteca STL e algoritmos
- Biblioteca STL
- Vectors
- Sets
- Maps
- Iterators
- Pilhas (Stacks)
- Filas (Queries)
- Listas Encadeadas (Linked Lists)
Algoritmos sobre árvores e grafos
- Árvores
- Algoritmos de Busca em Grafos
- DFS
- BFS
- A*
- Caminhos Mais Curtos
- Bellman-Ford
- Dijkstra
- Floyd-Warshall
- Topological Sorting
- Programação Dinâmica
algoritmos especiais; problemas matemáticos clássicos; estudos em geometria
- Matemática
- Geometria
- Algoritmos