rust-algorithms
Algorithms from Introduction to The Design and Analysis of Algorithms (3rd ed.) by Anany Levitin implemented in the Rust programming language.
Contents
- Brute Force (Ch. 3)
- Brute-Force Closest-Pair
- Brute-Force String Matching
- Bubble Sort
- Selection Sort
- Sequential Search 2
- Decrease-and-Conquer (Ch. 4)
- Binary Search
- Binary-Reflected Gray Code (BRGC)
- Insertion Sort
- Johnson-Trotter Permutations
- Lexicographic Permutations
- Quickselect
- Divide-and-Conquer (Ch. 5)
- Efficient Closest-Pair
- Mergesort
- Quicksort
- Dynamic Programming (Ch. 8)
- Floyd's All-Pairs Shortest-Path algorithm
- Memory-Function Knapsack
- Optimal Binary Search Tree (BST)
- Warshall's Transitive Closure algorithm
- Exhaustive Search (Ch. 3)
- Breadth-first Search
- Depth-first Search
- Greedy Technique (Ch. 9)
- Dijkstra's Single-Source Shortest Path algorithm
- Huffman Codes
- Kruskal's Minimum Spanning Tree algorithm
- Prim's Minimum Spanning Tree algorithm
- Iterative Improvement (Ch. 10)
- Maximum Bipartite Matching
- Shortest Augmenting Path
- Stable Marriage algorithm
- Space and Time Trade-offs (Ch. 7)
- Comparison Counting Sort
- Distribution Counting Sort
- Horspool's String Matching algorithm
- Transform-and-Conquer (Ch. 6)
- Gaussian Forward Elimination with partial pivoting
- Gaussian Forward Elimination
- Heap Bottom-up Construction
- Heapsort
- Horner's Rule for Evaluating Polynomials
- Left-Right Binary Exponentiation
- Presort Element Uniqueness
- Presort Mode
- Right-Left Binary Exponentiation