Algoritmos em Rust
40+ algoritmos clássicos implementados em Rust — com explicações visuais, análise Big-O e código completo.
Domine algoritmos fundamentais usando Rust. Cada página inclui explicação do conceito, diagrama visual do funcionamento, análise de complexidade (tempo e espaço), implementação completa em Rust idiomático e exercícios práticos.
Categorias
Ordenação & Busca
Bubble Sort, Merge Sort, Quick Sort, Heap Sort, Binary Search e mais — os algoritmos fundamentais.
Grafos
BFS, DFS, Dijkstra, Bellman-Ford, Kruskal, Prim, ordenação topológica e caminhos mínimos.
Programação Dinâmica
Mochila, LCS, distância de edição, troco de moedas, subsequência crescente e mais clássicos de DP.
Algoritmos de Strings
KMP, Rabin-Karp, Trie, Aho-Corasick, suffix array, palíndromos e busca de padrões.
Matemática, Árvores & Avançado
BST, AVL, hash table, Union-Find, Segment Tree, crivo de Eratóstenes e exponenciação rápida.
Todos os Algoritmos
Algoritmo de Dijkstra em Rust
O algoritmo de Dijkstra é o método mais eficiente para encontrar o caminho mais curto de um vértice de origem a todos os outros vértices em um grafo com pesos …
Algoritmo de Bellman-Ford em Rust
O algoritmo de Bellman-Ford resolve o problema do caminho mais curto a partir de uma única fonte em grafos que podem conter arestas com peso negativo — uma …
Algoritmo de Kruskal em Rust
O algoritmo de Kruskal encontra a Árvore Geradora Mínima (Minimum Spanning Tree, ou MST) de um grafo conectado e ponderado. A MST é um subconjunto de arestas …
Algoritmo de Prim em Rust
O algoritmo de Prim é uma abordagem gulosa para encontrar a Árvore Geradora Mínima (MST) de um grafo conectado e ponderado. Diferente do Kruskal, que trabalha …
Ordenação Topológica em Rust
A Ordenação Topológica (Topological Sort) é um algoritmo que organiza os vértices de um Grafo Acíclico Direcionado (DAG — Directed Acyclic Graph) em uma …
Algoritmo de Floyd-Warshall em Rust
O algoritmo de Floyd-Warshall encontra o caminho mais curto entre todos os pares de vértices de um grafo ponderado em uma única execução. Diferente do Dijkstra …
Fibonacci com Programação Dinâmica
A sequência de Fibonacci é o ponto de partida clássico para aprender programação dinâmica (DP). Embora o problema em si seja simples — cada número é a soma dos …
Problema da Mochila (Knapsack) em Rust
O problema da mochila (Knapsack) é um dos problemas mais estudados em otimização combinatória e ciência da computação. Dado um conjunto de itens, cada um com …
Subsequência Comum Mais Longa (LCS)
A Subsequência Comum Mais Longa (LCS — Longest Common Subsequence) é um dos problemas clássicos de programação dinâmica sobre strings. Dadas duas sequências, …
Distância de Edição (Levenshtein) em Rust
A distância de edição (ou distância de Levenshtein) mede o número mínimo de operações necessárias para transformar uma string em outra. As operações permitidas …