Arrays
Manipulação e busca em arrays
Ordenação
Algoritmos de ordenação
Bubble Sort
Algoritmo de ordenação que compara elementos vizinhos e troca quando estão fora de ordem.
Bucket Sort
Algoritmo distributivo que divide elementos em buckets, ordena cada um, e concatena o resultado.
Counting Sort
Algoritmo de ordenação não comparativo que conta a frequência de cada elemento para determinar suas posições no array ordenado.
Insertion Sort
Algoritmo de ordenação que insere cada elemento na posição correta da parte já ordenada do array, como organizar cartas na mão.
Merge Sort
Algoritmo de ordenação estável que usa dividir para conquistar, dividindo o array ao meio e intercalando as metades ordenadas.
Quick Sort
Algoritmo de ordenação eficiente que usa a estratégia dividir para conquistar, escolhendo um pivô e particionando o array.
Selection Sort
Algoritmo de ordenação que encontra o menor elemento e o coloca na posição correta, repetindo para o restante do array.
Grafos
Busca e caminhos em grafos
BFS (Breadth-First Search)
Algoritmo de busca em largura que explora o grafo nível por nível, encontrando o caminho mais curto em grafos sem peso.
DFS (Depth-First Search)
Algoritmo de busca em profundidade que explora o grafo indo o mais fundo possível antes de retroceder.
Dijkstra
Algoritmo que calcula a menor distância entre um vértice de origem e todos os outros em grafos com pesos positivos.
Topological Sort
Ordena vértices de um grafo direcionado acíclico (DAG) de forma que para toda aresta u->v, u aparece antes de v.
Union-Find (Disjoint Set)
Estrutura de dados para rastrear elementos particionados em conjuntos disjuntos, com operações quase O(1) para unir conjuntos e verificar conectividade.
Hash
Tabelas hash e hashing
Strings
Manipulação de strings
Programação Dinâmica
Subproblemas sobrepostos e memoização
Coin Change
Dado um conjunto de moedas e um valor alvo, encontre o número mínimo de moedas necessárias para somar o valor. Clássico problema de DP bottom-up.
0/1 Knapsack
Dada uma lista de itens com peso e valor, e uma mochila com capacidade limitada, escolha quais itens levar para maximizar o valor total. Cada item só pode ser pego uma vez.